ListView概述:
ListView是应用最为广泛的数据显示视图
ListView的常用属性:
属性名称 | 说明 |
---|---|
divider | 设置分割线的颜色 |
dividerHeight | 设置分割线的高度 |
scrollbars | 设置滚动条的隐藏或显示 |
fadeScrollbars | 设置滚动条的自动隐藏或显示 |
entries | 引用一个将使用在此ListView里的数组。若数组是固定的,使用此属性将比在程序中写入更加简单 |
实现ListView的一般步骤:
-
在布局文件中编写代码【xml】
-- 添加ListView标签
-
在Activity中编写代码【java】
-- 获取ListView对象
-- 准备数据源
-- 配置适配器
-- 将适配器关联到ListView
什么是适配器(Adapter):
适配器是数据和视图间的桥梁,它负责把数据所提供的内容显示到视图所定义的外观中。
适配器的种类:
名称 | 说明 |
---|---|
ArrayAdapter | 适用于简单的文字列表 |
SimpleAdapter | 适用于简单的图文混搭列表 |
SimpleCursorAdapter | 适用于数据源是数据库的列表 |
自定义Adapter(继承BaseAdapter) | 最灵活的适配器,适用于绝大多数情况 |
注意:ArrayAdapter,SimpleAdapter和SimpleCursorAdapter也继承于BaseAdapter
使用SimpleAdapter实现图文混编列表:
* 在布局文件中编写代码
-- 添加ListView标签(main.xml)
-- 编写行布局文件(item.xml)***
* 在Activity中编写代码
-- 获取ListView对象
-- 准备数据源(List<Map>)
-- 配置适配器(SimpleAdapter)
-- 将适配器关联到ListView
SimpleAdapter适配器:
SimpleAdapter允许开发者编写自定义的行布局,并通过键值对把数据映射到控件上。
小技巧:解决item项不能被选中的问题
问题:当点击某一行的时候,没有背景色的变化。
原因:行中包含了按钮,按钮抢夺了焦点
解决方案:夺回焦点
-- 在行布局中设置descendantFocusability属性
总结:
ListView是数据显示的最常见形式
Adapter是ListView与数据之间的桥梁
ArrayAdapter适用于简单的文字列表
SimpleAdapter适用于图文混搭列表,需要提供自定义的行布局
当行布局中出现按钮时,需设置descendantFocusability属性,使行优先获得焦点
自定义Adapter:
名称 | 说明 |
---|---|
ArrayAdapter | 适用于简单的文字列表 |
SimpleAdapter | 适用于简单的图文混搭列表,但不适宜驾驭较复杂的业务逻辑 |
自定义Adapter | 最灵活的适配器,适用于绝大多数情况 |
实现自定义Adapter的步骤:
* 继承BaseAdapter
* 实现getView方法
* 关联ListView
ListView的常用事件:
名称 | 说明 |
---|---|
onItemClick | Item项点击事件 |
onItemLongClick | Item项长按事件 |
-- _erizo