我需要任何人帮助..
我在检查单选按钮时面临困难。
我的概念是如何在arraylist中保存单选按钮,以及如何从arraylist中检查所选值。如果假设想象一个测验应用程序。我在一个单独的数组中有一组问题和答案。我正在展示它。没关系。现在,如果我来到一个先前的问题,我应该检查已经存储在arraylist中的选定答案。同样对于下一个问题。怎么实现这个?我觉得这很困难。
当第一个问题显示时,我检查并得到这样的答案..
btn_practicerg.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton radioButton = (RadioButton)group. findViewById(checkedId);
String temp = radioButton.getText().toString();
当我按下一个按钮寻找下一个问题时,就像这样做,并在string
中得到答案,而我按前面我已经使用了相同的那样..但我不应该这样做而不是我应该检查已经选择了答案..
抱歉我的英语不好。非常感谢提前..
答案 0 :(得分:0)
radioGroup = (RadioGroup) findViewById(R.id.rdbGp1);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub for(int i=0; i
RadioButton btn = (RadioButton) radioGroup.getChildAt(i);
String text;
if (btn.isPressed() && btn.isChecked() && questNo < 5)
{
Log.e("corrAns[questNo]",corrAns[questNo]);
if (corrAns[questNo].equals(btn.getText()) && flag==true)
{
score++;
flag=false;
checked = true;
}
else if(checked==true)
{
score--;
flag=true;
checked = false;
}
}
} tvScore.setText("Score: " + Integer.toString(score) + "/5"); Log.e("Score:", Integer.toString(score)); } });
这是你可以继续根据你的需要修改的片段...... 我希望这个能帮上忙 还请查看此link
答案 1 :(得分:0)
我不知道你的实现,但我会有一个名为Question的类,例如,它包含问题,数组中的答案,正确的答案(只是数组的id)和选中的回答(只是数组的id)。
因此,在您的程序中,您将拥有一组Question对象,并且您将选择该选项,然后您可以放置radioButton.toggle();
答案 2 :(得分:0)
使用HashMap<RadioGroup,Integer> hashMap
将值存储在
btn_practicerg.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton radioButton = (RadioButton)group. findViewById(checkedId);
String temp = radioButton.getText().toString();
hashMap.put(group,checkedId);
稍后您可以在hashmap中检索RadioGroup的值,只需将RadioGroup的对象作为键传递给HashMap。例如
RadioGroup mOption = (RadioGroup) findViewById(R.id.option);
mOption.check(hashMap.get(mOpiton));