recycleview中使用checkbox导致的重复选中问题
Posted epmouse
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了recycleview中使用checkbox导致的重复选中问题相关的知识,希望对你有一定的参考价值。
参考博文:http://www.myexception.cn/mobile/1852852.html
在使用RecycleView做仿微信图片选择器,其中条目中使用了checkbox,在选中时由于holder的复用,导致checkbox会多选,解决方案如下:
需要两个list一个用来放tag标记,一个用来放置选中的图片路径。
holder.checkBox.setTag(new Integer(position));//防止复用导致的checkbox多选的问题。 //防止复选的辅助list checkPositionlist if (checkPositionlist != null) { holder.checkBox.setChecked((checkPositionlist.contains(new Integer(position)) ? true : false)); } else { holder.checkBox.setChecked(false); } holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ if(!checkPositionlist.contains(holder.checkBox.getTag())) { checkPositionlist.add(new Integer(position)); checkedImgs.add(currentImgPath); } }else { if(checkPositionlist.contains(holder.checkBox.getTag())){ checkPositionlist.remove(holder.checkBox.getTag()); checkedImgs.remove(currentImgPath); } } } });
以上是关于recycleview中使用checkbox导致的重复选中问题的主要内容,如果未能解决你的问题,请参考以下文章
Android RecycleView notifyItemChanged()刷新闪烁异常处理
关于recycleview 滑动item变长(item变形)问题