在RecyclerView中;为每个item中的RadioGroup设置监听,我的项目中是每个条目中有3个RadioButton。当选中某个条目的RadioButton后上下滑动RecyclerView发现没有选中的item也会选中,导致整个界面选中混乱不堪。
解决方式:
javabean:
private String state;
adapter:
rg1.setOnCheckedChangeListener(null); //取消监听器,防止RadioGroup显示混乱 关键代码
switch (Integer.parseInt(item.getState())){
case 1:
rg1.check(R.id.rb_1);
break;
case 2:
rg1.check(R.id.rb_2);
break;
case 3:
rg1.check(R.id.rb_3);
break;
default:
rg1.clearCheck();
break;
}
rb1.setText(item.getDicBean().get(0).getCodeText());
rb2.setText(item.getDicBean().get(1).getCodeText());
rb3.setText(item.getDicBean().get(2).getCodeText());
rg1.setId(helper.getAdapterPosition());
rg1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (onItemStatesClick != null) {
onItemStatesClick.onItemStatesClick(helper.getAdapterPosition(), checkedId);
}
}
});