Вам потребуется расширить 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
}
}