zoukankan      html  css  js  c++  java
  • 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);
                         }
                     }
                }
            });
  • 相关阅读:
    Java Class/Method
    Data Types in Java
    Java overview && JVM
    Interface Vs. Abstract Class
    【javascript】Object三种定义方式
    【C#】导出Excel
    【javascript】简单原型链、借用构造函数
    Mysql表编码查看修改
    asp.net的mvc?
    连表
  • 原文地址:https://www.cnblogs.com/epmouse/p/5527508.html
Copyright © 2011-2022 走看看