我是 Java/Android 开发的新手。我正在viewflipper中动态构建一个问题/答案,以便每次翻转都有一个带有一些答案的新问题。现在,在我的 XML 文件中,我有一个 Flipperview。下面的代码构建了 X 个 [linearlayout with a [radiogroup and [4 radio elements]]]。我的问题是:如何根据脚蹼中的“当前”可见窗口获取选定的单选按钮?
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 有多安全。如果有人有另一种方法,请告诉我。