RecylerView中checkbox的选择错乱问题和选不中问题

设置checkbox改变的监听器方法要添加在初始化Checkbox状态的代码之前,原因是滑动的时侯会重新给已经选中的checkbox赋值造成isChecked状态改变。

一、错乱问题分析:


先选中两个item1和item2,打印日志:如下


这时候我向上滑动屏幕让item1和item2移去屏幕,OnCheckedChangeListener方法被调用,打印日志:如下,
item1和item2的状态改变啦


解决此问题:把setOnCheckedChangeListener写在setChecked方法之前,就OK!

二、错乱问题分析:
我在选择时第一页的item时总会出现,如我选position=2的checkbox,另外一个position=6的会同时选中;或者选position=3的checkbox,position=6的也会选中。
原因是我设置点击事件时的position,用错了。



三、选不上checkbox分析:
点击选择checkbox时,它快速由选中变为不选中。
原因是由于checkbox控件设置了点击事件,而checkbox的SetOnCheckedChangeListener()要比OnClickListener()执行的快。所以就先执行了SetOnCheckedChangeListener()先选中了,然后执行OnClickListener()根据判断,让checkbox又取消了选中状态。






解决方法是:不要给checkbox添加点击事件,而是给它的父类的View,也就是给这个item的itemView添加点击事件。通过点击itemView来设置checkbox的选择状态。



源码下载地址:http://download.csdn.net/detail/jason_996/9702101
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值