解决方式:
第一种:
在bean里添加一个参数,
public class Bean {
private boolean isCheck;
public void setCheck(boolean isCheck) {
this.isCheck= isCheck;
}
public boolean isCheck() {
return isCheck;
}
}
在adapter中:
final CheckBox cb = holder.getView(R.id.id_cb);
cb.setChecked(bean.isCheck());
cb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
bean.setCheck(cb.isChecked());
}
});
第二种:
首先在ViewHolder中加一个
public int getPosition() {
return mPosition;
}
adapter中:
private List<Integer> integers = new ArrayList<Integer>();//用来记录哪个被点击了
final CheckBox cb = holder.getView(R.id.id_cb);
cb.setChecked(false);
if (integers.contains(holder.getPosition())) {
cb.setChecked(true);
}
cb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (cb.isChecked()) {
integers.add(holder.getPosition());
} else {
integers.remove((Integer)holder.getPosition());//注意:按对象移除
}
}
});
本文介绍两种在Android应用中实现Checkbox状态同步的方法。第一种方法通过直接设置Bean中的属性来更新状态;第二种方法则使用列表保存已选中的项,并据此更新Checkbox的状态。
7262

被折叠的 条评论
为什么被折叠?



