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);
}
これはラジオボタンを動的に追加するためのコードです。ラジオグループが動作していない、垂直方向のアライメント
問題は、1つのオプションを選択し、それ以外のものを選択すると前のものを選択解除しないという問題です。 同じ無線グループに両方が追加されている場合に、別の番号を選択した最初の番号の選択を解除しないのはなぜですか?の向きが、私は
RadioGroup group = new RadioGroup(Questionnaire.this);
group.setOrientation(RadioGroup.HORIZONTAL); // RadioGroup.HORIZONTAL or RadioGroup.VERTICAL
の私の宣言を移動し、水平
UPDATE
に設定されている場合、また、それはお互いの隣にあるが、互いの上にラジオボタンを配置していませんループの親側のループを取得しています
java.lang.IllegalStateException:子供はすでに親を持っています。子の親で最初にremoveView()を呼び出す必要があります。
どうすればいいですか?
"...両方が同じラジオグループに追加されている場合。" - 彼らは皆同じラジオグループにいると確信していますか?新しい 'RadioButton'ごとに新しい' RadioGroup'を作成しているようです。これはおそらくあなたの方向の問題を説明します。 –
@MikeM。私はforループを持っているので、あなたが今言ったことのために私はそれを外に移動しました。java.lang.IllegalStateExceptionを取得しています:指定された子はすでに親を持っています。最初に子の親に対してremoveView()を呼び出さなければなりません。どうすればいいですか?私は内側に質問ループを持っていますが、私は 'RadioGroup group = new RadioGroup(Questionnaire.this);と答えた側の答えループです。 group.setOrientation(RadioGroup.HORIZONTAL); // RadioGroup.HORIZONTALまたはRadioGroup.VERTICAL' –
xmlとjavaコード全体を投稿できますか? 'IllegalstateException'が発生するのは、追加しようとするビューが他のレイアウトに既に追加されているためです。 –