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





  • 相关阅读:
    使用IDEA启动Tomcat时出现端口被占用的问题解决办法
    在Navicat中设置id主键为UUID自增
    关于IDEA构建的maven项目:WEB-INF下的jsp移动到webapp下出现404无法访问的问题
    Spring框架学习日志(2/4)
    Spring框架学习日志(1/4)
    jenkins+python+pytest+selenium 自动化执行脚本并发送报告
    Selenium 添加Cookie实现绕过登录流程
    CSS
    集合
    Javaweb初学
  • 原文地址:https://www.cnblogs.com/flyme2012/p/3944833.html
Copyright © 2011-2022 走看看