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

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

private List<Integer> positionList = new ArrayList<Integer>();

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

}
}
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn_zxw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值