1、写错误代码。
viewholder.cb_choice.setChecked(mCbBooleanList.get(position));
viewholder.cb_choice.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
mCbBooleanList.put(p,true);
}else{
mCbBooleanList.put(p,false);
}
}`
});
2、正确代码,本人暂时还没有想清楚问题所在,但是这样调换位置之后就可以解决乱序的问题,希望能给你们带来帮助,如果你知道原因的可以留言告诉博主。
viewholder.cb_choice.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
mCbBooleanList.put(p,true);
}else{
mCbBooleanList.put(p,false);
}
}
});
viewholder.cb_choice.setChecked(mCbBooleanList.get(position));