как установить проверенную радиокнопку программно (радиокнопка создана динамически) на андроид - PullRequest
0 голосов
/ 20 октября 2018

Я пробую это

radioButton.setChecked(true);

, но работает только 4-я кнопка.Я пытаюсь создать радио кнопку динамически.Я создаю радиобутон внутри цикла for, затем сохраняю значение радиокнопки.Затем восстановите значение переключателя (это означает, что у меня есть 4 варианта, тогда я выбираю 2-й вариант и сохраняю его, затем восстанавливаю его (2-й вариант setChecked)), но только 4-й вариант setChecked.

Создать radioButton.

for (int k = 0; k < choiceElementList.size(); k++) {
  if (choiceElementList.get(k).dataFormatId == 1) {
    radioButton = new RadioButton(getContext());
    radioButton.setText(choiceElementList.get(k).getDataFormatValue());
    radioButton.setLayoutParams(params1);
    radioButton.setPadding(0, 5, 0, 5);
    Log.e("setid", String.valueOf(choiceElementList.get(k).getId())) ;
    radioGroup.addView(radioButton);
  } 
}

Попробуйте восстановить это

if(choiceElementList.get(k).getId() == Cons.Id){
  radioButton.setChecked(true);
}

Ответы [ 3 ]

0 голосов
/ 20 октября 2018

Сначала установите идентификаторы для ваших RadioButtons

for (int k = 0; k < choiceElementList.size(); k++) {

    if (choiceElementList.get(k).dataFormatId == 1) {
        RadioButton radioButton = new RadioButton(getContext());

        // Set ID to Radio Button
        radioButton.setId(k);

        radioButton.setText(choiceElementList.get(k).getDataFormatValue());
        radioButton.setLayoutParams(params1);
        radioButton.setPadding(0, 5, 0, 5);
        Log.e("setid", String.valueOf(choiceElementList.get(k).getId())) ;
        radioGroup.addView(radioButton);
    } 
}

, теперь просто используйте RadioGroup для проверки желания RadioButton с его идентификатором

if(choiceElementList.get(k).getId() == Cons.Id){
    radioGroup.check(k);   // K will be your ID Set for your desire RadioButton
}

Happy Coding ...

0 голосов
/ 23 октября 2018

Это потому, что вы добавляете все свои RadioButton в RadioGroup.Когда кнопка RadioButton включена в RadioGroup, кнопка RadioButton будет отключена.В документации RadioGroup четко сказано:

Этот класс используется для создания области множественного исключения для набора переключателей.Если для одной радиокнопки, принадлежащей группе радиостанций, сняты все ранее отмеченные радиокнопки в той же группе.

По сути, все радиокнопки не отмечены.Хотя невозможно снять флажок с определенной радиокнопки, радиогруппу можно очистить, чтобы удалить проверенное состояние.

Выбор определяется уникальным идентификатором радиокнопки, как определено в файле макета XML.

0 голосов
/ 20 октября 2018

согласно этим сегментам кода, ваша переменная radioButton относится только к последнему созданному элементу (radiobutton).Вот почему это только четвертый.Вы должны получить правильную ссылку для переключателя, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...