2015-11-09 1 views
1

Я создал программно 5 радиогрупп с 4 переключателями каждый. Проблема в том, что когда я сначала проверяю радиокнопку из первой группы радиостанций, и после этого я проверяю вторую радиокнопку из той же группы радиосвязи, первая радиокнопка остается отмеченной. Что я могу сделать, чтобы иметь нормальное поведение для всех переключателей в радиогруппе? Это мой код:Как отключить все радиокнопки в группе радио, когда в Android установлен переключатель?

radioGroup = new RadioGroup[5]; 
    answer = new RadioButton[4]; 
    int i = 0; 
    for (Question qn : questions) { 
     radioGroup[i] = new RadioGroup(this); 
     int j = 0; 
     for (Answer an : answers) { 
      if (qn.getID() == an.getQuestion_id_answer()) { 
       answer[j] = new RadioButton(this); 
       answer[j].setText(an.getAnswer()); 
       radioGroup[i].addView(answer[j]); 
       j++; 
      } 
     } 
     linearLayout.addView(radioGroup[i]); 
     i++; 
    } 

Спасибо!

ответ

1

"Проверка одного RadioButton что принадлежит RadioGroup снят с ранее отмеченного пользователя RadioButton в той же группе." Источник: developer.android.com

Если я понимаю правильно: Вы говорите о 4 RadioButtons в том же RadioGroup, что отказываются снимите себя при нажатии другой кнопки в том же RadioGroup получает проверяется?

Если это так, просто дайте другому Resource ID каждому RadioButton, и это должно исправить его.

+0

Да, вы правы. Первый переключатель, который я проверил из первой группы радиостанций, остается отмеченным. Это происходит в каждой радиогруппе. Но, например, во второй группе радио, после того, как я проверил 2 переключателя, второй остается включенным. i set 'radioGroup [i] .setId (i);' и 'answer [j] .setId (j);' иметь разные идентификаторы, но ничего не изменилось. Любая другая идея? –

+0

Попробуйте установить id следующим образом: 'answer [j] .setId (i +" _ "+ j);', потому что если у вас более 1 группы радио, кнопки внутри них будут иметь одинаковый идентификатор. –

+0

Не работает. Это ошибка: 'setId (int) в представлении не может быть применен к java.lang.string'. Как я могу сделать? –

Смежные вопросы