Android - проблема с динамическими кнопками радио - PullRequest
2 голосов
/ 13 мая 2011

Пожалуйста, помогите мне в этом, я пытаюсь динамически создать 2 переключателя в цикле for, в зависимости от того, какой пользователь хочет ввести, чтобы иметь такие переключатели, как

* Radio Button1 * RadioButton2

* Радиокнопка1 * Радиокнопка2

* Радиокнопка1 * Радиокнопка2

* Радиокнопка1 * Радиокнопка2

.,.

.

и т. Д. В зависимости от цикла!

Вот фрагмент из моего кода, он работает только для 2 переключателей в одном ряду, но когда я увеличиваю значение count.,я получаю ошибку времени выполнения андроида ребенка радиогруппы, уже имеющего родителя.: S

List<RadioGroup> allradioGroup = new ArrayList<RadioGroup>();
RadioGroup radioGroup;

List<RadioButton> allRadio = new ArrayList<RadioButton>();
RadioButton radioButton;

        for (int i = 0; i < count; i++) {

        /* Defining RadioGroup */
        radioGroup = new RadioGroup(this);
        radioGroup.setOrientation(RadioGroup.HORIZONTAL);

        allradioGroup.add(radioGroup);


        /* Displaying Radio Buttons */
        for (int j = 0; j < 2; j++) {
            radioButton = new RadioButton(this);
            radioButton.setTextColor(getResources().getColor(R.color.grey));
            radioButton.setId((j + 100));

            allRadio.add(radioButton);

            if (allRadio.get(j).getId() == 100) {
                radioButton.setText("private");
            } else if (allRadio.get(j).getId() == 101) {
                radioButton.setText("public");
            }

                allradioGroup.get(i).addView(allRadio.get(j), j,
                        layoutParams);
        }

        linear.addView(allradioGroup.get(i));

    }

ПОМОГИТЕ.Спасибо

1 Ответ

0 голосов
/ 13 мая 2011

Ваша проблема в этой строке: "allradioGroup.get (i) .addView (allRadio.get (j), j, layoutParams);"

Параметр j будет находиться в диапазоне 0-1,также, когда вы создаете свой второй ряд.Вы пытаетесь использовать allRadio.get (j), который при втором запуске вернет первую радиокнопку, которую вы создали (у которой уже есть родитель).Чтобы это исправить, замените «j» на: «i * 2 + j».Это должно это исправить.

...