Android - 动态收音机按钮问题

时间:2011-05-13 12:26:49

标签: android list arraylist radio-button radio-group

请帮我解决这个问题,我试图在for循环中动态生成2个单选按钮,具体取决于我想要的用户输入是否有像

这样的单选按钮

* Radio Button1 * RadioButton2

* Radio Button1 * RadioButton2

* Radio Button1 * RadioButton2

* Radio Button1 * RadioButton2

。 。

等等......取决于循环!

以下是我的代码中的代码段,它仅适用于一行中的2个单选按钮,但是当我增加count的值时。 。我得到已经有父母的radiogroup孩子的android运行时错误。 :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 :(得分:0)

你的问题是这一行:“allradioGroup.get(i).addView(allRadio.get(j),j,layoutParams);”

当您创建第二行时,参数j将在0-1范围内。您正在尝试使用allRadio.get(j),它在第二次运行时将返回您创建的第一个单选按钮(已有父级)。要解决此问题,请将“j”替换为:“i * 2 + j”。那应该解决它。