Android RadioButton не может отключиться с помощью метода setChecked (false)
Если я установил переключатель, который будет выбран в первый раз, он отлично работает. Но если я сниму его, позвонив ((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 выполняется по крайней мере один раз, все становится бесполезным.
Когда я перешагиваю свой отладчик, я вижу, что выполнение идет по правильному пути и устанавливает его в true. Он выполняется только один раз, я проверил это. И я не возвращаю его обратно в false в любой другой части кода.
Ответы
Ответ 1
Я нашел решение.
Невозможно снять отметку с определенного переключателя. Вы можете установить для другого объекта значение true.
Итак, чтобы очистить все отмеченные элементы, вы должны вызвать метод clearcheck()
в RadioGroup.
Итак, моя другая часть
else {
((RadioGroup) findViewById(R.id.ID0)).clearCheck();
}
Ответ 2
Возьмите один невидимый переключатель и проверьте его. Все остальные радиокнопки группы будут автоматически сняты.