ListActivity
ListActivity 是一个窗口,该窗口通过绑定数据源(如数组或者查询结果游标)来显示一些数据项的列表,并且当用户选择一个列表项的时候触发一个事件处理。ListActivity本身维持一个ListView对象,该对象可以被绑定到不同的数据源,通常可能是一个数组或者是指向查询结果集的游标。下面依次介绍屏幕布局、行布局、数据的绑定以及常用的方法。
Screen Layout(屏幕布局)
ListActivity默认的布局是一个位于屏幕中心的全屏列表。你也可以通过setContentView()方法来指定自己的布局文件。你需要做的是自己写一个布局文件,这个布局文件必须包括一个ListView对象,它的id必须是”@android:id/list”。另外,你还可以为你的listActivity提供一个id为”@android:id/empty”的任意类型的view,当listview中没有数据显示的时候就会显示该view。
Row Layout(行布局)
通过为Listactivity所持有的ListAdapter(列表适配器)对象指定一个布局资源,你可以为列表中的单独的一行指定一个布局(所有行都采用统一布局)。列表适配器负责将listView绑定到特定的数据。
一个ListAdapter的构造函数需要一个参数来为列表的每行指定一个布局资源。在该构造函数中,还有两个参数,通常是两个平行的数组from和to,from通常是一个string类型的数组,指定了要在视图对象(通常是一个Textview)中显示的列名,to通常是一个int型数组,指定了一系列的视图对象来显示from参数中的对应数据域。
Android提供了一些标准的行布局资源。他们都在R.layout类中,例如simple_list_item_1,simple_line_item2,two_line_list_item。
Binding to Data(绑定数据)
你可以使用一个实现了ListAdapter接口的类来将数据和ListActivity的listview对象绑定。Android提供了两个标准的列表适配器:simpleAdapter用于静态数据(通常是一个maps组成的列表,每个map对应与列表项中的一行),simpleCursorAdapter用于查询结果。