美文网首页安卓控件Android知识Android开发
用CheckBox在ListView滚动过程中自动调用setOn

用CheckBox在ListView滚动过程中自动调用setOn

作者: Yeewoe | 来源:发表于2016-12-09 13:04 被阅读413次

本企业级移动App的Android开发工程师一枚,新开博客来记录下自己编码过程的辛酸史,给自己看也给看到的童鞋们提供一些文字上的帮助。 自己也有在简书看一些大神的技术博客,写得不好欢迎指正!!!以下是分割线~~~


今天的坑~~ 最近在做列表带可选框的需求时碰到一些问题,以为设了初始checked状态和onCheckedChangeListener事件监听改变一下checkbox的状态就可以了,实际并不能正常 工作。。。

当选中的checkbox在listview滑动时会自动调用setOnCheckedChangeListener将状态反选,导致滑动后选中的状态被反选。 查了一下资料,可通过一下方法规避:


viewHolder.mCheckBoxCheck.setOnCheckedChangeListener(null);

viewHolder.mCheckBoxCheck.setChecked(item.isLookable);

viewHolder.mCheckBoxCheck.setOnCheckedChangeListener(newCompoundButton.OnCheckedChangeListener() {

@Override

public voidonCheckedChanged(CompoundButton buttonView, booleanisChecked) {

item.isLookable= isChecked;

}

});

希望看到的童鞋们不再踩坑~~ 有更好的方法的欢迎留言交流~~   ^_^


更新于12月13号

参考了一些朋友以及评论大神的做法,可以通过不设置onCheckedChangeListener改用setOnClickListener再手动改变CheckBox的状态实现效果。具体用哪种根据实际情况决定。(原谅我写这篇文章时并不会MarkDown语法╮(╯╰)╭

相关文章

网友评论

  • 6aa4d7566063:啊啊啊我遇到过这个坑,就类似于购物车选中要删除的商品那个功能,我的解决方式是不监听onCheckChange方法,而是监听onClick,在这方法里面设置checkbox的选中状态
    Yeewoe:@亿达 嗯嗯!确实是大坑,常规的事件居然不好使。。
  • Yeewoe:自己顶以下~~ :sweat_smile:

本文标题:用CheckBox在ListView滚动过程中自动调用setOn

本文链接:https://www.haomeiwen.com/subject/uomemttx.html