————————————————————————————————————————————
ListView中自定义适配器的优化
1、优化的目的?(提高系统运行效率)
2、优化的场合?(数据量相对比较大)
3、优化的手段?(先讲两种)
1)重用适配器getView方法中的convertView参数
方案:判定convertView是否为空
2)减少适配器getView方法中findViewById方法的执行次数
方案:构建ViewHolder类型对象,实现对子元素位置的重用
————————————————————————————————————————————
ListView中事件监听处理器
ListView中的事件一般指的是相关Item的点击事件:
1、短按事件监听(OnItemClickListener)
2、长按事件监听(OnItemLongClickListener)
在执行事件处理时,要执行什么动作由具体业务而定。
————————————————————————————————————————————
ListView中选择模式
ListView在实际应用中可以设置其选择模式,默认选择模式是none后续可以设置为单选模式或多选模式?
具体选择模式相关值:(AbsListView)
1)CHOICE_MODE_NONE
2)CHOICE_MODE_SINGLE
3)CHOICE_MODE_MULTIPLY
获得选中值:前提必须设置了选择模式为单选或多选
1)getCheckedItemPosition(单选时调用)
2)getCheckedItemPositions(多选时调用)
案例:让点击过的item高亮显示(例如让正在播放的音乐的item以不同背景呈现给用户)
1)设置lostvuew的选择模式为单选模式
2)重写适配器的getView方法
a)获得选中位置的颜色
b)设置选中位置的背景色
c)点击时刷新ListView(重新设置item)
————————————————————————————————————————————
ListView中内容的排序?
1、排序的应用场合?
1)按商品价格排序
2)按商品销量排序
3)按司机口碑排序
4)...
2、排序的实现手段?
1)对数据集排序
一般是借助Collections的sort方法进行排序
2)刷新ListView(执行适配器的notifyDataSetChanged()方法)
ListView中item分块显示?
1、应用场合?
1)数据量比较小
2)数据已经有序
例如
1)手机联系人
2)城市列表
3)品牌列表
2、应用实现?(尝试自己做)
1)每个item中添加一个textview用于显示分块名称。
2)同一个分块的第一个item分块名称显示,其他要隐藏。
——————————————————————————————————————————
作业
1、总结
1)ListView中adapter的优化?
a)convertView
b)viewholder
2)ListView中item的事件处理?
a)onItemClick
b)onItemLongClick
案例:媒体播放及音乐信息的显示
3)ListView对象选择模式的设置?
a)案例:ListView中item的高亮显示(正在播放的音乐)
4)ListView对象内容的排序?
2、完成课堂基本案例
3、尝试完成媒体播放综合案例(第一个版本)
4、尝试完成ListView中item分块显示
ListView中自定义适配器的优化
1、优化的目的?(提高系统运行效率)
2、优化的场合?(数据量相对比较大)
3、优化的手段?(先讲两种)
1)重用适配器getView方法中的convertView参数
方案:判定convertView是否为空
2)减少适配器getView方法中findViewById方法的执行次数
方案:构建ViewHolder类型对象,实现对子元素位置的重用
————————————————————————————————————————————
ListView中事件监听处理器
ListView中的事件一般指的是相关Item的点击事件:
1、短按事件监听(OnItemClickListener)
2、长按事件监听(OnItemLongClickListener)
在执行事件处理时,要执行什么动作由具体业务而定。
————————————————————————————————————————————
ListView中选择模式
ListView在实际应用中可以设置其选择模式,默认选择模式是none后续可以设置为单选模式或多选模式?
具体选择模式相关值:(AbsListView)
1)CHOICE_MODE_NONE
2)CHOICE_MODE_SINGLE
3)CHOICE_MODE_MULTIPLY
获得选中值:前提必须设置了选择模式为单选或多选
1)getCheckedItemPosition(单选时调用)
2)getCheckedItemPositions(多选时调用)
案例:让点击过的item高亮显示(例如让正在播放的音乐的item以不同背景呈现给用户)
1)设置lostvuew的选择模式为单选模式
2)重写适配器的getView方法
a)获得选中位置的颜色
b)设置选中位置的背景色
c)点击时刷新ListView(重新设置item)
————————————————————————————————————————————
ListView中内容的排序?
1、排序的应用场合?
1)按商品价格排序
2)按商品销量排序
3)按司机口碑排序
4)...
2、排序的实现手段?
1)对数据集排序
一般是借助Collections的sort方法进行排序
2)刷新ListView(执行适配器的notifyDataSetChanged()方法)
ListView中item分块显示?
1、应用场合?
1)数据量比较小
2)数据已经有序
例如
1)手机联系人
2)城市列表
3)品牌列表
2、应用实现?(尝试自己做)
1)每个item中添加一个textview用于显示分块名称。
2)同一个分块的第一个item分块名称显示,其他要隐藏。
——————————————————————————————————————————
作业
1、总结
1)ListView中adapter的优化?
a)convertView
b)viewholder
2)ListView中item的事件处理?
a)onItemClick
b)onItemLongClick
案例:媒体播放及音乐信息的显示
3)ListView对象选择模式的设置?
a)案例:ListView中item的高亮显示(正在播放的音乐)
4)ListView对象内容的排序?
2、完成课堂基本案例
3、尝试完成媒体播放综合案例(第一个版本)
4、尝试完成ListView中item分块显示