本企业级移动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语法╮(╯╰)╭