【问题标题】:ArrayList get element from object - JavaArrayList 从对象中获取元素 - Java
【发布时间】:2017-03-03 17:40:15
【问题描述】:

我创建了这个类:

 public class Questions {

    ArrayList<String> questionsList = new ArrayList<>();


    public Questions(String question,String answer) {

        questionsList.add(question);
        questionsList.add(answer);

    }

    public ArrayList<String> getQuestionsList() {
        return questionsList;
    }
}

我想将它添加到 ArrayList:

ArrayList<Questions> questionsArrayList;

 questionsArrayList= new ArrayList();
        questionsArrayList.add(new Questions(getString(R.string.question1),(getString(R.string.answer1))));
        questionsArrayList.add(new Questions(getString(R.string.question2),(getString(R.string.answer2))));
        questionsArrayList.add(new Questions(getString(R.string.question3),(getString(R.string.answer3))));
        questionsArrayList.add(new Questions(getString(R.string.question4),(getString(R.string.answer4))));

我怎么能打电话( 例如)R.string.question1 从 questionArrayList.get(0); 设置为 TextView 和 R.string.answer1 作为 String 以检查正确答案。我不知道如何分开它。

【问题讨论】:

标签: java android arraylist


【解决方案1】:

如果您希望能够从 Questions 类中访问问题和答案,则必须在 Questions 类中创建一个 getter 函数。例如

public String getQuestion() {
    return questionsList.get(0);
}

public String getAnswer() {
    return questionsList.get(1);
}

通过添加这些,您现在可以从 Questions 类的任何实例访问问题和答案。 或者,使用您当前的代码,您可以调用 getQuestionsList().get(0) 等。我个人不会这样构建我的代码,但这取决于您。

【讨论】:

    【解决方案2】:

    这里:

    questionsArrayList.add(new Questions(getString(R.string.question1),(getString(R.string.answer1)))
    

    您不能在一次调用中添加() 多个对象。

    您可以add(oneObject); 或执行addAll(Arrays.asList(oneObject, anotherObject, ....)); 之类的操作

    注意:创建列表时,您应该只使用特定列表类型;在任何其他地方,只能使用 List 类型;喜欢

    List<String> questions = new ArrayList<>();
    

    【讨论】:

      【解决方案3】:

      看起来您的问题类仅设置为处理单个问题和单个答案。所以没有必要将它们存储在 arrayList 中。您可以将它们存储为字符串,然后使用 getter/setter 访问问题和答案。

      public class Questions {
      
          private final String question;
          private final String answer;
      
          public Questions(String question,String answer) {
              this.question = question;
              this.answer = answer;
          }
      
          public String getQuestion() {
              return this.question;
          }
      
          public String getAnswer() {
              return this.answer;
          }
      }
      

      如果您仍然需要将问题作为列表,您可以添加以下方法:

       public List<String> getQuestionsList() {
           return Arrays.asList(question, answer);
       }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 2020-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多