关于ListView里面,嵌入Checkbox适配器复用导致的Checkbox混乱问题

1.问题回顾:

ListView的优化会适配器复用,但是,会产生checkbox混乱的问题,

比如勾选:

关于ListView里面,嵌入Checkbox适配器复用导致的Checkbox混乱问题_第1张图片


当腻滚动到下面是,出现了





关于ListView里面,嵌入Checkbox适配器复用导致的Checkbox混乱问题_第2张图片


15被勾选了。这个问题很恼火。


长话短说,解决方案:

1.在BaseAdapter的getView()方法里,我们记住点击后某个checkbox的状态。

传入一个SparseBooleanArray里(或者数组集合都可以,看自己的习惯,不过比较推荐SparseBooleanArraySparseBooleanArray详细介绍:http://blog.csdn.net/beeboobeeboo/article/details/9130357 )

关于ListView里面,嵌入Checkbox适配器复用导致的Checkbox混乱问题_第3张图片


2.紧接着根据SparseBooleanArray里的值再遍历一遍:

关于ListView里面,嵌入Checkbox适配器复用导致的Checkbox混乱问题_第4张图片2

问题就解决了

其实解决办法就一句话,"只要把添加监听器的方法加到初始化view中checkBox状态的代码之前即可. "

附加:关于ListView里面,嵌入Checkbox适配器复用导致的Checkbox混乱问题_第5张图片

这样看的更加清楚。

好了,over。

你可能感兴趣的:(关于ListView里面,嵌入Checkbox适配器复用导致的Checkbox混乱问题)