ExpandableListView + checkbox 滚动勾选失效

在使用ExpandableListView与checkbox结合时,滚动列表会导致已选中项自动取消选中。经过排查和研究,发现是滚动过程中自动触发了onCheckedChanged()。解决方法是在getGroupView()中,在设置CheckBox的OnCheckedChangeListener之前先将其设为null,然后重新设置监听器。此问题的解决源码提供了一个强迫症程序员的教训。
摘要由CSDN通过智能技术生成

ExpandableListView + checkbox在使用该组合控件的时候,遇到当勾选之后滚动控件,会发现之前选中项重新自动变回了没有选中状态,这个问题弄的我无从下手,不断梳理代码逻辑,没有问题,断点跟踪,,,,就是找不到原因,灵魂在Google游荡中,无意间发现一篇国外帖子,说是滚动自动触发oncheckedchanged();感觉整个世界都蒙 b 了。断点就是自动触发,就是不知道为啥,强迫症驱使我去找问题根源,,,,反而挖坑把自己埋了,最后的解决办法就是在 gechildview()设置oncheckedchanged监听前,将CheckBox

oncheckedchangelistener() 事件设置为null  ,再重新监听,贴上解决源码,强迫症惨痛教训,!!!!!


@Override
public View getChildView(final int groupPosition, final int childPosition
        , boolean isLastChild, View convertView, ViewGroup parent) {
    ChildHolder childHolder;
    VideoCacheT vt = (VideoCacheT) getChild(groupPosition, childPosition);
    if (convertView == null) {
        childHolder = new ChildHolder();
        childH
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值