zoukankan      html  css  js  c++  java
  • ListView中CheckBox错乱解决

    思路:
    ListView在复用的时候会出现很多问题,CheckBox状态会出现错乱,解决思路:
    1.使用Map集合的键值对的形式来存放position位置上CheckBox的状态
    2.监听CheckBox的状态改变Listener,如果选中就往Map中添加一个position,true  如果取消,则将map中对应的键值对移除。

    直接代码:

     
    private Map<Integer, Boolean> isCheckMap =  new HashMap<Integer, Boolean>();  
     
     
    holder.check,setTag(position);
    if (isCheckMap!= null  && isCheckMap.containsKey(position)) {
                holder.checkBox.setChecked(isCheckMap.get(position));
            }else {
                holder.checkBox.setChecked(false);
            } 
     
     
     holder.checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                            if(isChecked)
                            {
                                //将选中的放入hashmap
                                isCheckMap.put(position, isChecked);
                            }
                            else
                            {
                                //取消选中的则剔除
                                isCheckMap.remove(position);
                            }
                    }
                });





  • 相关阅读:
    不忘初心,方得始终
    我的博客开通了~第一个帖子奉上
    @TableLogic表逻辑处理注解(逻辑删除)
    nginx笔记
    ERROR: permission denied for relation hycom 权限被拒绝
    Mybatis-plus学习笔记
    SpringBoot学习笔记
    org.apache.ibatis.binding.BindingException原因总结(找不到映射文件)
    SpringBoot优先加载设置
    Date时间处理
  • 原文地址:https://www.cnblogs.com/flyme2012/p/3944833.html
Copyright © 2011-2022 走看看