您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: