请帮我解决这个问题,我试图在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));
}
请帮助。感谢
答案 0 :(得分:0)
你的问题是这一行:“allradioGroup.get(i).addView(allRadio.get(j),j,layoutParams);”
当您创建第二行时,参数j将在0-1范围内。您正在尝试使用allRadio.get(j),它在第二次运行时将返回您创建的第一个单选按钮(已有父级)。要解决此问题,请将“j”替换为:“i * 2 + j”。那应该解决它。