android 滑动listview时,checkbox改变了状态

主要是因为checkbox的状态被adapter的机制给改变了,要解决问题,需要做个处理,就是要在adapter中保存checkbox的点击状态。如下:


private Map map=new HashMap<>();// 存放已被选中的CheckBox

在getview中if (view == null) {}的大括号里加入下面处理即可


 viewHolder.check_item.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if(isChecked==true){
                        map.put(position,true);
                    }else {
                        map.remove(position);
                    }
                }
            });

            if(map!=null&&map.containsKey(position)){
                viewHolder.check_item.setChecked(true);
            }else {
                viewHolder.check_item.setChecked(false);
            }

这是原博客大神的地址https://blog.csdn.net/w6980112/article/details/52457320

你可能感兴趣的:(android 滑动listview时,checkbox改变了状态)