创建ListView的两种方法
- 直接使用ListView进行创建;
- 让Activity继承ListActivity。
ListView常用的XML属性
ListView常用的XML属性 | 说明 |
---|---|
android: choiceMode | 设置ListView的选择行为 |
android:divider | 设置ListView列表项的分隔条(可用颜色/Drawable) |
android:dividerHeight | 设置分隔条的高度 |
android:entries | 指定数组资源,将根据数组资源生成ListView |
android:footerDividersEnabled | 若为false,不在footView前绘分隔条 |
android:headerDividersEnabled | 若为false,不在headerView前绘分隔条 |
使用方法1–用ArrayAdater(一行只有一个数据)
- 用findViewById获取布局文件中的listview组件
- 定义一维数组String[]类型的arr变量
- ArrayAdater arrayAdapter=new
ArrayAdapter(this,android.R.layout.simple_list_item1,arr); - 给listView设置适配器:list.setAdapter(arrayAdapter)
ArrayAdapter的功能比较有限,它的每个列表项只能是TextView,如果需要实现更复杂的列表项,可以使用SimpleAdapter。
SimpleAdapter类的主要功能是将List集合的数据转换为ListView可以支持的数据。
使用方法2–用SimpleAdapter(一行有多个数据)
- 定义List<Map<String, Object>> 类型的lm
- Activity继承ListActivity
- 在Activity的布局文件放ListView,id设置为android:id="@id/android:list",还要设置子项布局文件R.layout.test_subject_item
- 给ListView设置适配器String[]里面取lm里面map对应的Key值,int[]取的是子布局文件相应组件的id
SimpleAdapter adapter1=new SimpleAdapter(this, lm,
R.layout.test_subject_item, new String[]{“course_id”, “exam_id”},
new int[]{R.id.show_course_id, R.id.show_exam_id }); - setListAdapter(adapter1);