私は次のように私が実装したラジオグループを持ってonCheckedChanged
います:
RadioGroup mRadioGroup = (RadioGroup) findViewById(R.id.radio_grp);
mRadioGroup.setOnCheckedChangeListener(this);
私の活動はOnCheckedChangeListener
、
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (group.getId()) {
case R.id.radio_grp:
if (my condition is true) {
Log.d(TAG, "want to change the radio group's checked button if code reaches here.");
} else {
Log.d(TAG, "do not want to change the radio group's checked button if code reaches here.");
}
break;
default:
break;
}
}
これで、ユーザーがラジオ ボタンをクリックするたびに、onCheckedChanged 内のコードが起動され、ユーザーがクリックしたラジオ ボタンもチェックされます。しかし、「私の条件が真」かどうかを確認したいのであれば、ラジオボタンの選択を変更し、条件が偽の場合は変更しないでください。
誰がこれを達成するために何をすべきかを提案できますか?
ありがとう!
PS: また、この質問の「件名」に何を書けばよいか考えられないので、誰かが件名を結論付けることができる場合は、編集してください。
PPS: 経由でラジオ グループの状態をリセットしようとしgroup.check(R.id.last_selected_id);
ましたが、コードが終わりのないループでスタックするため、StackoverFlow Exception がスローされます。