Android通用——ListView内放置CheckBox

来源:互联网 发布:个人备忘录java程序 编辑:程序博客网 时间:2024/06/03 14:52

ListView内部放置CheckBox,可以用来做多选的功能

将选中的item给予同一种动作操作


在做这个的时候遇到几个问题

1、checkBox能监听到,但无法获取item的点击事件

2、item能获取点击事件,chexkBox无法正常的刷新;就是数据在运行的时候没有错,但是一滑动就导致了没被选中的数据也显示被选中了

3、checkBox点击了,但是一直无法正常的显示选中,总是一闪就变成没选中了

4、没点击在chexkBox上,checkBox也会显示选中(会闪一下)


问题解答:(大概的方向,具体的不一定就是这个方法解答,给个解决方向)

1的问题,是因为chexkBox截取了item的Click事件;导致item无法正常执行onItemClick事件;

可以在xml内设置CheckBox的属性:

       android:focusable="false"

android:focusableInTouchMode="false"


2的问题,应该是使用了checkBox的OnCheckedChangeListener的监听;这个监听的名称就很明显了,说的就是chexkbox

的状态变化的时候触发的,所以一滑动ListView,选中的CheckBox的状态当然就被改变了,自然的就触发了这监听;

所以在ListView内最好不要这个监听来处理事件,当然,网络上有其他的方法可以使这个方法得到正常的使用,当本人认为:有哪个必要么?


3的问题,应该是设置CheckBox的状态的判断有问题,闪一下,说明:Checkbox

监听正常,有改变状态了,只是在后来getView刷新的时候,判断设置ChexkBox的状态是如何的时候,出了问题


4的问题,具体不懂,本人猜想是ChackBox的OnCheckedChangeListener的监听的问题,不过经过多次测试,

我只在包围ChexkBox的第一个父布局内点击的时候会发生,所以我将父布局的范围控制在了ChexkBox差不多大小,

这样有利于点击的时候能正常使ChexkBox的状态改变,也增加了软件的体验性


最后提供下载源码的地址:

辛苦费^_^——

免费地址——百度网盘:http://pan.baidu.com/s/1ntJU2Yt




0 0
原创粉丝点击