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);
                            }
                    }
                });





  • 相关阅读:
    python-study-08
    第一周代码整理
    python-study-阶段总结
    python-study-07
    二分查找数组中与目标数字(可以是浮点型)最近的数的位置
    寻找最大数
    零件分组(stick)
    走迷宫
    自然数的拆分问题 字典序
    素数环(回溯)
  • 原文地址:https://www.cnblogs.com/flyme2012/p/3944833.html
Copyright © 2011-2022 走看看