0

我需要任何人的帮助..

我在检查单选按钮时遇到了困难。

我的概念是如何将单选按钮保存在 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();

当我为下一个问题按下下一个按钮时,像这样做一样并在 a 中得到答案,string而当我按下上一个时,我已经使用了同样的方法.. 但我不应该那样做,而是应该检查已经选择的答案..

对不起,我的英语不好。非常感谢提前..

4

3 回答 3

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)); } });

这是您可以根据需要继续修改的片段...我希望这也有助于检查此链接

于 2013-08-09T07:50:52.877 回答
0

我不知道你的实现,但我会有一个名为 Question 的类,例如,它将包含问题、数组中的答案、正确答案(只是数组的 id)和选定的答案(只是数组的 ID)。

因此,在您的程序中,您将拥有一组 Question 对象,并且您将选择该选项,然后您可以放radioButton.toggle();

于 2013-08-09T07:55:37.380 回答
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));
于 2013-08-09T10:30:56.500 回答