Android ListActivity 详解
ListActivity的默认布局由一个位于屏幕中心的全屏列表构成。
如果你不想使用默认的布局,可以在onCreate()方法中通过setContentView()方法设定你自己的布局。
如果指定你自己定制的布局,你的布局中必须包含一个id为"@id/android:list"的ListView。 若你还指定了一个id为"@id/android:empty"的view,当ListView中没有数据要显示时,这个view就会被显示,同时 ListView会被隐藏。下面代码中有注释,这样更能让我们的明白代码中的含义。
在ListActivity 里边不用注册监听器,而是直接重写onListItemClick就可以对单击ListView的事件进行处理。onListItemClick()是一个回调函数,有Android函数负责调用
Java代码:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingLeft="8dp"
- android:paddingRight="8dp">
- <!-- 除了ListView和id为@id/android:empty的view之外,我们还可以任意添加view -->
- <TextView
- android:id="@+id/android:title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="The following is a list:" />
- <!-- id为@id/android:list的ListView为客户化的list布局,如果没有,则系统会调用默认的布局 -->
- <ListView
- android:id="@id/android:list"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#00FF00"
- android:layout_weight="1"
- android:drawSelectorOnTop="false" />
- <!-- 当ListView中没有数据时,id为@id/android:empty的view就会显示出来 -->
- <TextView
- android:id="@id/android:empty"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:textColor="#FF0000"
- android:text="No data"
- android:gravity="center_vertical|center_horizontal" />
- </LinearLayout>
Java代码:
- package EOE.android;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.ListActivity;
- import android.os.Bundle;
- import android.widget.ArrayAdapter;
- public class ListActivityDemo extends ListActivity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- List<String> items = fillList();
- ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items);
- setListAdapter(adapter);
- }
- private List<String> fillList() {
- List<String> items = new ArrayList<String>();
- items.add("星期一");
- items.add("星期二");
- items.add("星期三");
- items.add("星期四");
- items.add("星期五");
- items.add("星期六");
- items.add("星期日");
- return items;
- }
- }