Android ApiDemos示例解析(168):Views->Lists->1. Array
关于List,前面已有很多介绍,例如Android简明开发教程十:数据绑定Data Binding 。ListActivity 可以通过绑定数据源(如数组或Cursor)来显示一个列表,并可以响应用户选择某个列表项。
ListActivity中显示的是ListView,ListView和Gallery ,Spinner有一个共同点:它们都是AdapterView的子类。AdapterView的显示可以通过数据绑定来实现,数据源可以是数组或是数据库记录,数据源和AdapterView是通过Adapter作为桥梁。通过Adapter,AdatperView可以显示数据源或处理用户选取事件,如:选择列表中某项。
ListActivity 缺省Layout为一个全屏显示的单个列表,但Android允许使用setContentView() 为ListActivity使用自定义的Layout。此时Layout中必须含有一个id 为@android:id/list 的ListView。可以参见Expandable Lists 的用法:Android ApiDemos示例解析(112):Views->Expandable Lists->1. Custom Adapter。
绑定数据源,ListActivity 的ListView 通过 setListAdapter 于实现了ListAdapter 的对象进行绑定, Android提供了两个标准List的Adapter,一个为SimpleAdapter 用于绑定静态数据(Map),可以参见Android ApiDemos示例解析(2): SimpleAdapter,ListActivity,PackageManager ,另外一个为SimpleCursorAdapter 用于绑定Cursor类型数据源,参见Android ApiDemos示例解析(120):Views->Gallery->2. People
对于数组类型数据,还可以使用ArrayAdapter,ArrayAdapter 为一模板类,它缺省使用的显示资源为一TextView ,也可以使用自定义的资源ID创建一个ArrayAdapter.
本例使用string 类型ArrayAdapter ,显示一个数组。使用一个TextView(资源id为android.R.layout.易做图_list_item_1)来显示一个列表项。
[java]
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.易做图_list_item_1, mStrings));
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.易做图_list_item_1, mStrings));
补充:移动开发 , Android ,