关于CheckBox的复用导致数据混乱问题

思路就是每一个checkbox都添加一个tag,然后创建一个集合保存每一个checkbox的tag

private List positionList = new ArrayList();

check = (CheckBox) holder.itemView.findViewById(R.id.sygl_checkbox);
//check设置标示把当前的位置设置为tag

check.setTag(new Integer(position));

对此位置的tag进行判断

if(positionList.contains(check.getTag())){
check.setChecked(true);
}else{
check.setChecked(false);

}

如果有这个tag,就设置为true,没有就设置为false

设置监听:

check.setOnCheckedChangeListener(new OnCheckedChangeListener() {


@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub

if (isChecked) {//如果选中就在集合中添加此checkbox的tag

positionList.add(position);
if(!list_dtxz.contains(syjlPo)){
list_dtxz.add(syjlPo);
}

} else {//如果取消选中就在集合中取消
positionList.remove(new Integer(position));
if(list_dtxz.contains(syjlPo)){
list_dtxz.remove(syjlPo);
}

}
}
});

你可能感兴趣的:(安卓)