1.使用数组资源简单的实现
----- 缺点:无法改变每个列表项的字体颜色,大小等样式,所以一般用的比较少。
使用的步骤:
-
在res目录下的子目录value目录下创建数组资源array.xml
-
在布局文件中添加ListView组件,并设置分隔条,最重要的是设置entries属性
2.借助于Adapter
为了能够控制列表项的文字的大小,颜色,字体等外观我们需要借助于Adapter来提供数据,Adapter是一个接口,它的常用实现类有如下四种:
1.ArrayAdapter:只显示文本
使用步骤:
1.在布局文件中添加ListView组件,指定分隔条宽度及颜色,但是不指定entries属性,列表内容由Adapter来给出。
2.在代码中创建一个数组或者for遍历一个list集合创建一个数组,之所以创建一个数组是因为每个列表项就只显示一段文本这一个部分。
3.将数组包装为ArrayAdapter对象
4.将adapter与listView组件进行适配
2.SimpleAdapter:既包括图片又包括文本
使用步骤:
1. 在布局文件中添加ListView组件,指定分隔条宽度及颜色,但是不指定entries属性,列表内容由Adapter来给出。
2.在代码中根据每个列表项的部分创建对应的几个数组,比如每个列表项都包括:一个图片,一个名称,一个描述,那么对应创建三个数组资源。
3.创建一个List<Map<String,Object>>类型的集合,然后通过for循环调用put方法往map集合中去添加对象,最后再将多个map集合添加进list集合中。
4.将list集合包装为SimpleAdapter
5.将listView与adapter进行适配
3.SimpleCursorAdapter:要处理的列表内容是经过数据库查询得到的结果集Cursor,类似于Jsp里面的ResultSet。
注意:使用SimpleCursorAdapter封装Cursor时要求底层数据表的主键列的列名为_id,因为SimpleCursorAdapter只能识别列名为_id的主键。
使用步骤:
1.调用查询数据库的方法返回一个Cursor结果集
2.然后将结果集cursor包装成SimpleCursorAdapter对象,注意在包装的时候,String类型的数组的名称一定要和数据库表的列的字段名一致。
3.将ListView与adapter进行适配
4.BaseAdapter:通常用于被扩展,来取得对列表项内容的最大控制权:包括要创建多少个列表项,每个列表项都包括哪些组件等等。
使用步骤:
1.在布局文件中定义一个ListView组件
2.创建BaseAdapter对象,在创建的时候主要是重写其中的四个方法,getCount方法的返回值决定了列表项的个数,getItem方法获得当前选项,getItemId方法获得当前选项的id,getView方法是最主要的,用来决定第position个列表项的内容,所以在getView方法中可以通过if对position进行判断,从而对指定列表项的内容进行定制。
一般的对于列表项个数已知的情况,我们会根据列表项个数定义资源数组,然后getCount方法返回该数组的长度,
3.将listview与adapter进行适配
ListView的事件监听:
1.setOnItemSelectedListener:列表项被选则的监听器
2.setOnItemClickListener:列表项被单击的监听器(比较常用)