我在尝试从广播组中获取选中的值时遇到了一个小问题。
我使用for循环来创建我的问题和radiogroups。
LinearLayout a = (LinearLayout) findViewById(R.id.aLayout);
for (int k = 1; k < 11; k++){
//CREATE QUESTIONS
TextView q = new TextView(this);
q.setText(k + ")" + " " + pssQ[k]);
a.addView(q);
//CREATE RADIO BUTTONS
final RadioButton[] rB = new RadioButton[5];
RadioGroup rg = new RadioGroup(this);
rg.setOrientation(LinearLayout.VERTICAL);
for(int i = 0; i < 5; i++){
rB[i] = new RadioButton(this);
rg.addView(rB[i]);
rB[i].setText(a1[i]);
}
a.addView(rg);
//get values here??
}
代码按照我的意图运作。
问题是我不知道如何从每次迭代中获取已检查的单选按钮。我想要收集总共十个。
任何指导都将不胜感激。如果有一个更容易的选择,我会接受建议。
提前致谢。 :)
答案 0 :(得分:0)
您需要在循环中的每个RadioGroup
附加一个检查更改侦听器:
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// your logic here
}
});
答案 1 :(得分:0)
一种方法是使用附加变量(例如)isChecked
作为布尔变量,因此当isChecked
为真时,您可以发现用户在任何迭代中检查了哪个单选按钮。