ListActivity
ListActivity是一个专门显示ListView的Activity类,它内置了ListView对象,只要我们设置了数据源,就会自动地显示出来。
使用custom view for screen layout
虽然ListActivity内置了ListView对象,但我们依然可以使用custom view,通过在onCreate()里面调用setContentView(resources id)。
不过要注意的是,在自定义的Layout里面,要设置ListView对象的id为"@android:id/list";在Java代码里使用android.R.id.list。
下面的例子,通过添加一个id为android:empty的TextView,当ListView里面没有data的时候,就会显示"No data"。
自定义的View (listview.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
/>
<TextView android:id="@id/android:empty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="No data"
android:textColor="#ff0000"
/>
</LinearLayout>
加载Layout:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
//没有设置data source
}
Row Layout
android.R.layout.simple_list_item_1 一行text
android.R.layout.simple_list_item_2 一行title,一行text
android.R.layout.simple_list_item_single_choice 单选按钮
android.R.layout.simple_list_item_multiple_choice 多选按钮
android.R.layout.simple_list_item_checked checkbox
我们可以自定义自己的Layout (list_item.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:id="@+id/icon"
android:layout_width="48dip"
android:layout_height="48dip" />
<TextView android:id="@+id/text"
android:layout_gravity="center_vertical"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="wrap_content" />
</LinearLayout>
使用时,以R.layout.list_item引用就行了。
转载于:https://blog.51cto.com/255135/807061