Создание вида списка, как любимая вкладка на родной звонилке в Android - PullRequest
0 голосов
/ 16 февраля 2010

Я делаю приложение для Android, которое показывает список с пользователями, я хотел бы добавить изображение, имя, статус и кнопку в каждую строку списка, как на вкладке «Собственный абонент» Android> -> избранное До тех пор, пока я не знаю, что мне удалось добавить изображение и имя с помощью ListActivity, но когда я пытаюсь добавить кнопку, список становится невыбранным. Итак, у меня есть 2 вопроса, первый - это упомянутый выше список или списки? также это возможно с помощью listActivity? и во-вторых, в чем отличие вышеупомянутых классов? любая ссылка на учебники будут оценены.

1 Ответ

0 голосов
/ 16 февраля 2010

Вам потребуется расширить ListActivity и ListAdapter для реализации вашего дизайна. Деятельность, которая отображает ваш список, должна расширять ListActivity вместо Activity. В методе onCreate вашего ListActiviry для представления содержимого вашей деятельности должен быть установлен линейный макет, который является родительским для представления списка. Список должен иметь идентификатор "@ + id / android: list". Вы также можете включить просмотр текста, который будет отображаться, когда список пуст, см. Ниже. Также в OnCreate вызовите setListAdapter () и передайте новый объект, который расширяет ListAdapter.

В создаваемом вами классе, который расширяет ListAdapter, переопределите все необходимые вам методы, особенно getView ().

Пример кода:

MyListActivity.java

import android.app.ListActivity;
public class MyListActivity extends ListActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_list);
        setListAdapter(new MyListAdapter());
    }
}

my_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android:="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
    <ListView android:id="@+id/android:list"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content" />
    <TextView android:id="@+id/android:empty"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:text="No Events!"/>
</LinearLayout>

MyListAdapter.java

import android.widget.ListAdapter;

public class MyListAdapter implements ListAdapter {
  //Methods to load your data

  public View getView(int arg0, View reuse, ViewGroup parent) {
    //Create the view or if reuse is not null then reuse it.
    //Add whatever kind of widgets you want here and return the view object
  }
}
...