网上查了下,和一哥们犯了同样的错:先后顺序写反了
holder.cBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
isCheckedMap.put(id,true);
}else{
isCheckedMap.put(id,false);
}
}
});
// 下在这句不能放到监听的上面,一定要放在下面,监听改变的值后,再来设置值
holder.cBox.setChecked(isCheckedMap.get(id));