Android创建多维数组并获取价值

时间:2018-10-20 06:47:45

标签: java arrays

我的第一语言是PHP :)和Android和Java的新手。我试图了解Java中的数组系统,因为它与PHP完全不同。到目前为止,理解Java有两种不同类型的数组(如果我错了,请纠正我)arr[]ArrayList<>也不同于Java中的PHP,我们必须为数组定义datatype

我正在制作一个简单的测验应用程序(无数据库),只是为了学习。为此,我想创建一个包含问题,答案和类似选项的多维数组。

{
    {
        question,
        {option1, option2, option 3, ...}
        answer
    }

    {
        question,
        {option1, option2, option 3, ...}
        answer
    }

    {
        question,
        {option1, option2, option 3, ...}
        answer
    }

    ...
}

我了解使用arr[][] = {}创建多维数组的基础知识,但我不知道如何为选项添加另一个数组以获得与上述相似的结果。

更新

所以我想用这种方式填充列表。

enter image description here

2 个答案:

答案 0 :(得分:2)

您可以通过创建自己的模型类来实现

public class MyCustomModel {

String question;
List<String> options;
String answer;

public MyCustomModel(String question, List<String> options, String answer){
 this.question = question;
 this.options = options;
 this.answer = answer;
}

 // getter and setter methods here

}

然后简单地制作一个array list

private ArrayList<MyCustomModel> myData;

然后将数据添加到列表

myData.add(new MyCustomModel("question 1",myListOfOptions, "answer"));

希望这会有所帮助:)

答案 1 :(得分:1)

//您可以这样,添加模型类

  public class Quizmodel {

String mAnswer = new String();
String mQuestion = new String();
List<String> mOptions = new ArrayList<>();
public String getmQuestion() {
        return mQuestion;
    }

    public void setmQuestion(String mQuestion) {
        this.mQuestion = mQuestion;
    }

public String getmAnswer() {
        return mAnswer;
    }

    public void setmAnswer(String mAnswer) {
        this.mAnswer= mAnswer;
    }





    public List<String> getmOptions() {
        return mOptions;
    }

    public void setmOptions(List<String> mOptions) {
        this.mOptions = mOptions;
    }
    }

//在主类中设置模型类的值;

   List<Quizmodel> mQuizList = new ArrayList<>();
    String mQuestion = new String();
    mQuestion = "Ask Question Here ?";
    List<String> mOptionsList = new ArrayList<>();
    mOptionsList.add("A1");
    mOptionsList.add("A2");
    mOptionsList.add("A3");

    Quizmodel mModel = new Quizmodel();
    mModel.setmQuestion(mQuestion);
    mModel.setmOptions(mOptionsList);
     mModel.setmAnswer("A2");

    mQuizList.add(mModel);

    //String m = "";
    for (int ind = 0; ind < mQuizList.size(); ind++) {
        System.out.println(mQuizList.get(ind).getmQuestion());
        //  Log.v("response",mQuizList.get(ind).getmQuestion());
        for (int index = 0; index < mQuizList.get(ind).getmAnswers().size(); index++) {
            System.out.print(mQuizList.get(ind).mAnswers.get(index) + " ");
           // m = m + mQuizList.get(ind).mAnswers.get(index) + " ";
        }
System.out.println(mQuizList.get(ind).getmAnswer());
    }

//只需按照以下步骤操作,您将获得所需的结果。 //添加了示例输入和输出。

  

示例输出

     

在这里提问?

答案选项

  

A1 A2 A3

     

A2

//我希望它会带来方便。