ListView的点击事件应用
2016-06-04 16:39
295 查看
ListView的点击事件应用
1.ListView 中item的点击
1)短时间的点击(OnItemClickListener)
2)长时间的点击(OnItemLongClickListener)
2.ListView 中子元素的点击事件
1)重写适配器的getView方法,在此方法中获得要点击的对象,然后添加点击事件就可以了。(注意setTag,getTag的应用)
2)当ListView item中的子元素为button,ImageButton,ChecBox等button时,这些对象默认会优先获得焦点,这样可能导致listview 的item不能直接进行点击,假如有这个需要可以在listview 对应的item布局中的根元素上添加android:descendantFocusability属性,它的值有如下三个:
1)blocksDescendants (覆盖子元素焦点)
2)beforeDescendants (优先于子元素获得焦点)
3)afterDescendants(在子元素不需要焦点时获得焦点)
在如上三个值中我们一般选择第一个值。
ListView 的应用的item选择
1.实现listview中某个item的单选,多选
1)调用ListView的setChoiceMode设置选择模式
2)有选择性的指定一个可选择(例如包含一个CheckBox)的布局
3)借助listview的getCheckedItemPositions【多选】getCheckedItemPosition【单选】获得点击过的listview的选中状态。
4)清除选项状态时可使用listview的clearChoices
扩展:SparseBooleanArray 此对象类似HashMap,但是当使用此对象存储key/value为integer/boolean时,其效率要比HashMap高。
2.设置listview 中item对象选中时的背景,例如让选中的item高亮显示。
1)建议设置listview的选择模式(setChoiceMode)
2)在适配的getview中获得选中的item对象,修改此item的背景
3)在listview的监听器对应的方法中刷新listview.
ListView 中数据排序及分块显示
1.ListView 中item的排序:
建议在listview显示数据之前执行
Collections.sort(.....)
2.Listview 中item的分块显示
1)首先数据一般是全部加载(数据量比较小)
2)其次数据是有序的(要对其进行排序)
3)进行分块显示(让每个块最小postion的item显示key)
a)获得每个位置对应的块的名字?
int getSectionForPosition(int postion)
b)获得此块中最小位置
int getPositionForSection(int section)
【后续会更新demo】点击事件demo
1.ListView 中item的点击
1)短时间的点击(OnItemClickListener)
2)长时间的点击(OnItemLongClickListener)
2.ListView 中子元素的点击事件
1)重写适配器的getView方法,在此方法中获得要点击的对象,然后添加点击事件就可以了。(注意setTag,getTag的应用)
2)当ListView item中的子元素为button,ImageButton,ChecBox等button时,这些对象默认会优先获得焦点,这样可能导致listview 的item不能直接进行点击,假如有这个需要可以在listview 对应的item布局中的根元素上添加android:descendantFocusability属性,它的值有如下三个:
1)blocksDescendants (覆盖子元素焦点)
2)beforeDescendants (优先于子元素获得焦点)
3)afterDescendants(在子元素不需要焦点时获得焦点)
在如上三个值中我们一般选择第一个值。
ListView 的应用的item选择
1.实现listview中某个item的单选,多选
1)调用ListView的setChoiceMode设置选择模式
2)有选择性的指定一个可选择(例如包含一个CheckBox)的布局
3)借助listview的getCheckedItemPositions【多选】getCheckedItemPosition【单选】获得点击过的listview的选中状态。
4)清除选项状态时可使用listview的clearChoices
扩展:SparseBooleanArray 此对象类似HashMap,但是当使用此对象存储key/value为integer/boolean时,其效率要比HashMap高。
2.设置listview 中item对象选中时的背景,例如让选中的item高亮显示。
1)建议设置listview的选择模式(setChoiceMode)
2)在适配的getview中获得选中的item对象,修改此item的背景
3)在listview的监听器对应的方法中刷新listview.
ListView 中数据排序及分块显示
1.ListView 中item的排序:
建议在listview显示数据之前执行
Collections.sort(.....)
2.Listview 中item的分块显示
1)首先数据一般是全部加载(数据量比较小)
2)其次数据是有序的(要对其进行排序)
3)进行分块显示(让每个块最小postion的item显示key)
a)获得每个位置对应的块的名字?
int getSectionForPosition(int postion)
b)获得此块中最小位置
int getPositionForSection(int section)
【后续会更新demo】点击事件demo
相关文章推荐
- 链接和库
- hdu 2026 首字母变大写
- 基于Android 5.0的源码编译过程
- Pycharm连接Github
- 【51CTO学院三周年】没妹子 没票子 iOS大神之路
- Android之eclipse NDK开发环境的搭建
- 【java并发】条件阻塞Condition的应用
- DIV+CSS----流式布局和盒子模型
- 解决maven打包编译出现using platform encoding GBK, i.e. build
- nginx、php-fpm以及mysql运行在各个用户下的配置
- <ScrollView> 滚动视图的简单功能和用法
- linux 启动流程图
- 关注java体系的技术方向
- 每天15min-HTML5(2)-第一个HTML程序
- 《Indy In Depth》中文版
- 时区与时间
- 买书优惠问题
- 用js操作表格
- window7 上安装 php扩展
- 利用x64_dbg破解一个最简单的64位小程序