分配答案 - 测验程序

时间:2013-02-06 12:30:11

标签: android mobile android-intent

我需要一种方法来为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;
    }
}

2 个答案:

答案 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地图时,地图会保留问题数组,答案数组数组以及每个问题与答案数组之间的关联。