初めてラジオボタンを選択するように設定すると、正常に機能します。しかし、((RadioButton)findViewById(R.id.ID))。setChecked(false);を呼び出して選択を解除すると、その後、setChecked(true)を呼び出して選択させようとしても、ユーザーが画面から選択しないと機能しません。
誰かがこれに出くわしたことがありますか?それとも私だけですか?
if(Val != null){
if( ((RadioButton) findViewById(R.id.ID1)).getText().toString().trim().equals(Val))
((RadioButton) findViewById(R.id.ID1)).setChecked(true);
else if(((RadioButton) findViewById(R.id.ID2)).getText().toString().trim().equals(Val))
((RadioButton) findViewById(R.id.ID2)).setChecked(true);
}
else {
((RadioButton) findViewById(R.id.ID1)).setChecked(false);
((RadioButton) findViewById(R.id.ID2)).setChecked(false);
}
Else部分が少なくとも1回実行されると、すべてが台無しになります。デバッガーをステップスルーすると、実行が正しいパスで実行され、trueに設定されていることがわかります。一度だけ実行されているので確認しました。また、コードの他の部分では、falseにリセットしていません。
私は解決策を見つけました。
特定のラジオボタンのチェックを外すことはできません。他の項目のみをtrueに設定できます。
したがって、チェックされたすべての項目をクリアするには、RadioGroupでclearcheck()
メソッドを呼び出す必要があります。
だから私の他の部分は
else {
((RadioGroup) findViewById(R.id.ID0)).clearCheck();
}
見えないラジオボタンを1つ取り、それを確認します。グループの他のすべてのラジオボタンは自動的にオフになります。