ListView的点击事件应用

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值