Подтвердить что ты не робот

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 в любой другой части кода.

4b9b3361

Ответ 1

Я нашел решение.

Невозможно снять отметку с определенного переключателя. Вы можете установить для другого объекта значение true.

Итак, чтобы очистить все отмеченные элементы, вы должны вызвать метод clearcheck() в RadioGroup.

Итак, моя другая часть

        else {
            ((RadioGroup) findViewById(R.id.ID0)).clearCheck();
        }

Ответ 2

Возьмите один невидимый переключатель и проверьте его. Все остальные радиокнопки группы будут автоматически сняты.