多项和单项选择测试

Goo*_*ofy 9 java android

我正在进行单项选择和多项选择测试.

每个问题我都有几个问题和4个答案.

当每个答案分配给单选按钮时,我正在洗牌.这就是我如何改组arraylist,其中Random是一个带有项目的arraylist,而r1,r2,r3,r4是单选按钮.

random.add(val);
Collections.shuffle(random);


r1.setText(random.get(0));
r2.setText(random.get(1));
r3.setText(random.get(2));
r4.setText(random.get(3));
Run Code Online (Sandbox Code Playgroud)

我能够以混乱的方式显示答案,但当我选择答案时,我需要表明答案是对还是错.

Sample question and options.
1. which language is used for android programming?
 A.PHP
 B.JAVA
 C.C
 D.C++
Run Code Online (Sandbox Code Playgroud)

正确答案是B我需要显示正确答案是B.

如何实现这一目标.

编辑: 我试过这个:

每个单选按钮的Onclick分配值A,如果正确的显示正确,则将值与xml值进行比较,但是当我混杂时,它将不起作用.

编辑2 xml

<Question no="1" text="Which Programming language is used in android develoment" type="SCA" noc="4" jumble="NO" correctans="PHP">
<choice a = "PHP" flag="A"> 
<choice b = "JAVA" flag="B"> 
<choice c = "C" flag="C"> 
<choice d = "C++" flag="D"> 
Run Code Online (Sandbox Code Playgroud)

Jai*_*dra 6

您可以使用Option-isOptionCorrect对创建一个hashmap.喜欢你的情况:

HashMap<String, Boolean> choices = new HashMap<String, Boolean>();
choices.put("PHP", false);
choices.put("JAVA", true);
choices.put("C", false);
choices.put("C++", false);
Run Code Online (Sandbox Code Playgroud)

现在洗牌键值对.您正确的选择将是true在HashMap中具有价值的选择.


Say*_*eji 2

这是一个有点幼稚的解决方案,但它应该有效。

class Question {
    String message;
    String answer;
    List<String> options; //"Java", "PHP", etc
}
Run Code Online (Sandbox Code Playgroud)

在您的问题对象中随机播放地图的键在您的单选按钮中,执行类似的操作r1.setText(random.get(0))

单击时,执行

String choice = null;
for (RadioButton rb : rBtns) {
    if (rb.isSelected) {
        choice = rb.getText(); break();
    }
}

if (choice.equals(question.getAnswer))
    return true; //correct
else
    return false; //wrong
Run Code Online (Sandbox Code Playgroud)