本节引言
上一节主要介绍了Adapter适配器的概念,然后学习了ArrayAdapter、SimpleAdapter和SimpleCursorAdapter 这三个简单适配器的使用。本节讲解的是第一个需搭配Adapter使用的UI控件:ListView。从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传统的ListView,处理数据更加强大和灵活。不过RecyclerView并不会完全替代ListView(这点从ListView没有被标记为@Deprecated可以看出),两者的使用场合不一样。
1.自定义BaseAdapter完成数据的绑定
(1)新建一个module,命名为BaseAdapterDemo。
(2)新建一个自定义布局文件list_item.xml。
(3)收集8个头像图片导入至drawable文件夹下,见图2.7。
图2.7
(4)新建一个类AndroidBean,用于设置ListView中的加载项。
(5)布局文件activity_main.xml。
(6)MainActivity.java。
(7)运行效果,见图2.8。
图2.8
2.ListView模板参数案例
(1)新建一个module,命名为ListViewModeDemo。
(2)资源文件strings.xml。
(3)布局文件activity_main.xml。
(4)单选模式MainActivity.java。
(5)运行效果,见图2.9。
图2.9
(6)多选模式MainActivity.java。
(7)运行效果,见图2.10。
图2.10
(8)单选模式获取选中的item,修改布局文件activity_main.xml。
(9)修改相应的单选模式MainActivity.java。
(10)运行效果,见图2.11。
图2.11
(11)更加直接的方法是不需要在listView上设置监听,直接使用getCheckedItem Position()方法获得选中项目的索引,修改相应的单选模式MainActivity.java。
(12)对于多选模式,修改相应的多选模式MainActivity.java。(www.xing528.com)
(13)运行效果,见图2.12。
图2.12
3.表头表尾分割线的设置
ListView作为一个列表控件,它和普通的列表一样,可以自己设置表头与表尾以及分割线,可供用户设置的属性如下:
footerDividersEnabled:是否在footerView(表尾)前绘制一个分隔条,默认为true;
headerDividersEnabled:是否在headerView(表头)前绘制一个分隔条,默认为true;
divider:设置分隔条,可以用颜色分割,也可以用drawable资源分割;
dividerHeight:设置分隔条的高度。
没有直接设置ListView表头或者表尾的属性,只能在Java中通过编写代码进行设置,可供用户调用的方法如下:
addHeaderView(View v):添加headView(表头),括号中的参数是一个View对象;
addFooterView(View v):添加footerView(表尾),括号中的参数是一个View对象;
addHeaderView(headView,null,false):和前面的区别是设置Header是否可以被选中;
addFooterView(View,view,false):同上。
使用addHeaderView方法必须放在listview.setAdapter前面,否则会报错。
使用示例:
(1)在上一案例的基础上,新建一个表头布局文件view_header.xml。
(2)新建一个表尾布局文件view_footer.xml。
(3)MainActivity.java。
(4)运行效果,见图2.13。
图2.13
注意:添加表头表尾后,positon是从表头开始算的,即用户添加的第一个数据本来的postion是0,但是此时却变成了1。
4.列表从底部开始显示
如果用户想让列表显示最底部的内容,可使用这个属性,将stackFromBottom属性设置为true。
5.设置点击颜色
若用户为ListView设置了一个图片作为Background的话,在拖动或者点击listView空白位置时会发现 item都变成了黑色,这时用户可通过cacheColorHint将颜色设置为透明:#00000000。
6.隐藏滑动条
用户可以通过设置:android:scrollbars="none" 或者 setVerticalScrollBarEnabled(true)来解决滑动条隐藏的问题。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。