參考博文: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); } } } });