JSONArray jsonQuestion = new JSONArray(obj.get("question").toString());
for (int iii = 0; iii < jsonQuestion.length(); iii++) {
LinearLayout lll = new LinearLayout(Questionnaire.this);
lll.setOrientation(LinearLayout.VERTICAL);
JSONObject obj2 = (JSONObject) jsonQuestion.get(iii);
System.out.println(obj2.get("question"));
TextView tv = new TextView(Questionnaire.this);
tv.setText(obj2.get("question").toString());
lll.addView(tv);
JSONArray jsonAnswer = new JSONArray(obj.get("answer").toString());
Log.d("Reading Answer: ", jsonAnswer + "");
for (int iiii = 0; iiii < jsonAnswer.length(); iiii++) {
JSONObject obj3 = (JSONObject) jsonAnswer.get(iiii);
System.out.println(obj2.get("questiosysid").toString().matches(obj3.get("questionid").toString()));
if (obj2.get("questiosysid").toString().matches(obj3.get("questionid").toString())) {
TextView tv1 = new TextView(Questionnaire.this);
tv1.setText(obj3.get("inputname").toString());
RadioGroup group = new RadioGroup(Questionnaire.this);
group.setOrientation(RadioGroup.HORIZONTAL); // RadioGroup.HORIZONTAL or RadioGroup.VERTICAL
if (obj3.get("inputtype").toString().matches("radio")) {
RadioButton newRadioButton = new RadioButton(Questionnaire.this);
newRadioButton.setId(Integer.parseInt(obj3.get("answerid").toString()));
newRadioButton.setText(obj3.get("inputname").toString());
group.addView(newRadioButton);
lll.addView(group);
}
}
}
ll.addView(lll);
}
Это мой код для динамического добавления переключателя.радиогруппа не работает и вертикальное выравнивание андроида
Проблема в том, что я выбираю один вариант, затем выбираю пыльник, который не отменяет предыдущий. Почему он не отменяет выбор первого, выбрав другой, когда они оба добавлены в ту же группу радиостанций. Кроме того, не размещая радиокнопки рядом друг с другом, но друг на друга, когда ориентация установлена на горизонтальной
UPDATE
Я переехал мою декларацию
RadioGroup group = new RadioGroup(Questionnaire.this);
group.setOrientation(RadioGroup.HORIZONTAL); // RadioGroup.HORIZONTAL or RadioGroup.VERTICAL
out side parent for loop теперь я получаю
java.lang.IllegalStateException: Спецификация у ребенка уже есть родитель. Сначала вы должны вызвать removeView() родителя ребенка.
Как мне с этим справиться?
«... когда они оба добавлены в одну группу радио». - Ты уверен, что они все в одной «Радиогруппе»? Похоже, вы создаете новую «RadioGroup» для каждого нового «RadioButton». Это, вероятно, также объясняет вашу проблему с ориентацией. –
@MikeM. у меня есть это в цикле, поэтому я переместил его извне из-за того, что вы сказали сейчас, я получаю 'java.lang.IllegalStateException: указанный ребенок уже имеет родителя. Сначала вы должны вызвать removeView() для родителя ребенка. «Как мне с этим справиться? У меня есть цикл вопросов внутри - это цикл ответа, который только что вышел из цикла ответа. Я объявил «Группа RadioGroup = новая RadioGroup (Questionnaire.this); group.setOrientation (RadioGroup.HORIZONTAL); // RadioGroup.HORIZONTAL или RadioGroup.VERTICAL' –
можете ли вы разместить весь код xml и java? 'IllegalstateException' возникает, потому что просмотр вашей попытки добавления уже добавлен в другой макет. –