我需要一种方法来为ArrayList中的问题分配3个可能的答案,其中只有一个答案是正确的。
我是Android的新手,所以如果你能提供帮助我感激不尽。
我在这里有一个问题课:
package com.example.quiz;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.widget.TextView;
public class Questions extends Activity {
private ArrayList<String> questionsArray = new ArrayList<String>();
public Questions() {
addQuestion("Which Prophet was the first in Islam?");
addQuestion("What is the purpose of life?");
addQuestion("Who is the last Prophet in Islam?");
}
public void addQuestion(String question) {
questionsArray.add(question);
}
public ArrayList<String> getQuestionsArray() {
return questionsArray;
}
public void setQuestionsArray(ArrayList<String> questionsArray) {
this.questionsArray = questionsArray;
}
}
答案 0 :(得分:0)
有许多可能的方法。其中一个是为每个答案选项创建一个ArrayList
,即A,B和C.然后再一个ArrayList
表示哪个答案是正确的
因此,总共有4 ArrayList
s,3表示存储答案,1表示哪个选项正确
答案 1 :(得分:0)
当必须将数据与其他数据相关联时,地图非常有用。在您的情况下,您试图将问题与每个问题的答案数组相关联。
您可以为所有问题(HashMap<String, ArrayList<String>> answers
)制作ArrayList<String>
并保留答案(String
),然后在另外HashMap<String, String> correctAnswers
处保留问题({1}}第一个String
)并且它与正确答案相关联(第二个String
)。
验证答案时,您必须得到用户选择的答案,并将其与正确答案进行比较,如下所示:
if(correctAnswers.get(questionString).compareTo(chosenAnswerString))
{
//correct answer!
}
else
{
//incorrect answer
}
用于添加问题及其答案的方法:
[...]
private Map answers = new HashMap<String, ArrayList<Sting>>();
private Map correctAnswers = new HashMap<String, String>();
public void addQuestion(String question, ArrayList<String> answers, String correctAnswer)
{
this.answers.put(question, answers);
this.correctAnswers.put(question, correctAnswer);
}
[...]
如上所述创建answers
地图时,地图会保留问题数组,答案数组数组以及每个问题与答案数组之间的关联。