在onBindViewHolder方法中:
//---RadioGroup 的处理开始------------------------------
//1.先取消对其监听
h1.rg.setOnCheckedChangeListener(null);
//2.先清空所有选项
h1.rg.clearCheck();
//3.根据选择情况显示选择答案
switch (list.get(position).getCheckedNum()) {
case 1:
h1.rg.check(R.id.r_1);
break;
case 2:
h1.rg.check(R.id.r_2);
break;
case 3:
h1.rg.check(R.id.r_3);
break;
case 4:
h1.rg.check(R.id.r_4);
break;
default:
break;
}
//4.重新注册监听
h1.rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
int p=0;
switch (checkedId){
case R.id.r_1:
p=1;
break;
case R.id.r_2:
p=2;
break;
case R.id.r_3:
p=3;
break;
case R.id.r_4:
p=4;
break;
}
//把选择了的答案记录回到ListView的集合中,以便滑动时给对应的RadioGroup赋值
list.get(position).setCheckedNum(p);
//测试选择答案正确性
for(Title title:list){
if(title.getCheckedNum()>0)
Log.e("TAG",title.getTITLE()+"---"+title.getCheckedNum());
}
}
});
//--------RadioGroup 的处理结束--------------