listview 嵌套checkbox响应item点击和button点击事件

时间:2023-03-09 02:52:17
listview 嵌套checkbox响应item点击和button点击事件

参考文档

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=182280

一、主要要点

1. CheckBox的优先级比item高。所以要设置android:focusable="false",来使得初始化时checkbox不获得焦点,否则不能触发listview的item点击事件

2. CheckBox加入到item后。当listview的item数大于屏幕能够显示的item数)滑动屏幕的时候,由于适配器中getview()会重复使用被移除屏幕的item,所以会造成checkbox选择状态不正常的现象。而赋给checkbox点击事件等多种办法都不能解决选择状态混乱状态。最后将CheckBox设置为android:clickable="false"来屏蔽checkbox的点击事件,通过listview的setOnItemClickListener来控制checkbox的状态。

并通过在数据源List中记录checkbox的选择状态,在重写Adapter的getview方法内控制CheckBox选中状态,来避免了checkbox滑动时刷新混乱的状态。

此时如何判断是checkbox修改选中状态,还是响应item点击事件?

可以给item内的内容添加tag,增加setOnClickListener来响应点击事件

listview 嵌套checkbox响应item点击和button点击事件