从零开始学安卓笔记:ListView

178 阅读2分钟

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的常用事件:

名称说明
onItemClickItem项点击事件
onItemLongClickItem项长按事件

--   _erizo