#java #android #radio-button
Вопрос:
Я пытаюсь проверить первую RadioButton
по умолчанию, но вместо этого проверяется последняя кнопка. Я использовал следующее, и он автоматически выбирает последнее RadioButton
RadioButton rb;
rb = new RadioButton(context);
rb.setText("item" i);
rb.setId(i);
rg.addView(rb, layoutParams);
rb.setChecked(true);
Я также попытался использовать позицию, но результат тот же
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
radioButton = group.findViewById(rg.getCheckedRadioButtonId());
rb_position = group.indexOfChild(radioButton);
if (rb_position == 0){
rb.setChecked(true);
}
}
});
Ответ №1:
Я предполагаю, что вы динамически добавляете новые переключатели в группу радиостанций. Вы используете переменную «rb», чтобы продолжать добавлять кнопки в группу (что нормально), однако в своем слушателе вы говорите
rb.setChecked(true);
но переменная «rb» все еще имеет ссылку на последнюю кнопку, добавленную в радиогруппу. Назначьте ссылку на первый переключатель переменной «rb» внутри прослушивателя.
rb = (RadioButton) rg.getChildAt(0);
rb.setChecked(true);
Комментарии:
1. но как мне изменить ссылку на первую кнопку, а также для второго варианта, как поместить слушателя на первую кнопку, учитывая, что размер rb изменяется. Не могли бы вы объяснить это каким-нибудь кодом?
2. Попробуйте добавить rb = rg.getChildAt(0); перед rb.Установлен флажок(true);