Java/Android 開発は初めてです。ビューフリッパー内で質問/回答を動的に構築しているため、各フリップにはいくつかの回答を持つ新しい質問があります。現在、私の XML ファイルにはフリッパービューがあります。以下のコードは、X 個の [[radiogroup と [4 つの無線要素]] を持つ linearlayout] を構築します。私の質問は、フリッパーの「現在の」表示ウィンドウに基づいて、選択したラジオボタンを取得するにはどうすればよいですか?
for (DataQuizQuiz quiz_question : PLT.dataQuiz.getQuiz_data()) {
LinearLayout ll = new LinearLayout(this);
ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
ll.setOrientation(LinearLayout.VERTICAL);
RadioGroup rg = new RadioGroup(this);
TextView tv_answer = new TextView(this);
tv_answer.setText("Question: " + quiz_question.getQuestion());
ll.addView(tv_answer);
for (DataQuizAnswers answer : quiz_question.getAnswers()) {
RadioButton rb = new RadioButton(this);
rb.setText(answer.getAnswer());
rg.addView(rb);
}
ll.addView(rg);
vf_quiz_data.addView(ll);
}
私が知っているvf_quiz_data.getCurrentView()
のは だけですが、その中の要素を参照する方法がわかりません.idがなく、オンザフライで作成されるためです。コードはレイアウトを構築するために機能します。その中のデータを参照する方法がわかりません。助けてくれてありがとう。
更新: 可視ビューでラジオ グループをターゲットにする方法を思いつきましたが、もっと良い方法が必要だと思います。ラジオ グループにカウンター 0,1,2 などの ID を割り当てました。これは、ループし、これを使用してラジオ グループ要素をキャプチャするためです。
int selected = (int) ((RadioGroup)
vf_quiz_data.getCurrentView().findViewById(
vf_quiz_data.getDisplayedChild())).getCheckedRadioButtonId();
RadioButton b = (RadioButton) findViewById(selected);
Log.v("DEBUG",(String) b.getText());
また、カウンターに基づいてIDを割り当てることがどれほど安全かはわかりません。誰かがこれを行う別の方法を持っている場合は、私に知らせてください。