解决方式:
第一种:
在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());//注意:按对象移除
}
}
});