在android中的arraylist.add上编译时错误

时间:2014-05-29 17:30:31

标签: android class arraylist

  

我有一个ArrayList;在这个我无法添加项目

下面是我的代码我不知道我做了什么错误请帮助解决这个问题

private ArrayList<Question> question = new ArrayList<Question>();

问题是一个带有getter和setter的类

public class Question {

private String id;
private String question;
private String option1;
private String option2;
private String option3;
private String option4;

public Question(String id, String question, String option1, String option2,
        String option3, String option4) {
    super();
    this.id = id;
    this.question = question;
    this.option1 = option1;
    this.option2 = option2;
    this.option3 = option3;
    this.option4 = option4;
}

public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
public String getQuestion() {
    return question;
}
public void setQuestion(String question) {
    this.question = question;
}
public String getOption1() {
    return option1;
}
public void setOption1(String option1) {
    this.option1 = option1;
}
public String getOption2() {
    return option2;
}
public void setOption2(String option2) {
    this.option2 = option2;
}
public String getOption3() {
    return option3;
}
public void setOption3(String option3) {
    this.option3 = option3;
}
public String getOption4() {
    return option4;
}
public void setOption4(String option4) {
    this.option4 = option4;
}

@Override
public String toString() {
    return question;
}

}

  

这里我要添加到数组列表中:

JSONArray questions = data.getJSONArray("questions");
                        for(int i =0; i<questions.length();i++)
                        {                               
                            question.add(questions.getJSONObject(i).getString("id"),questions.getJSONObject(i).getString("question"),questions.getJSONObject(i).getJSONObject("options").getString("option1"),questions.getJSONObject(i).getJSONObject("options").getString("option2"),questions.getJSONObject(i).getJSONObject("options").getString("option3"),questions.getJSONObject(i).getJSONObject("options").getString("option4"));
                        }
  

但是我得到以下编译时错误

     

类型ArrayList中的方法add(int,Question)不适用于参数(String,String,String,String,String,String)

如何解决这个问题?

4 个答案:

答案 0 :(得分:3)

您需要在for循环中创建一个新问题:

JSONArray questions = data.getJSONArray("questions");
for(int i =0; i<questions.length();i++)
{                               
    question.add(new Question(
        questions.getJSONObject(i).getString("id"),
        questions.getJSONObject(i).getString("question"),
        questions.getJSONObject(i).getJSONObject("options").getString("option1"),
        questions.getJSONObject(i).getJSONObject("options").getString("option2"),
        questions.getJSONObject(i).getJSONObject("options").getString("option3"),
        questions.getJSONObject(i).getJSONObject("options").getString("option4")
    ));
}

答案 1 :(得分:2)

我相信你想在问题ArrayList ...

中添加一个新的问题对象
question.add(new Question("id", "question", "opt1", "opt2", "opt3", "opt4"));

答案 2 :(得分:2)

您需要在循环中添加问题,例如:

  question.add(new Question(questions.getJSONObject(i).getString("id"), questions.getJSONObject(i).getString("question"),questions.getJSONObject(i).getJSONObject("options").getString("option1"),questions.getJSONObject(i).getJSONObject("options").getString("option2"),questions.getJSONObject(i).getJSONObject("options").getString("option3"),questions.getJSONObject(i).getJSONObject("options").getString("option4")) );

答案 3 :(得分:1)

在arraylist中添加Question的实例而不是单个值。

question.add(new Question(questions.getJSONObject(i).getString("id"),questions.getJSONObject(i).getString("question"),questions.getJSONObject(i).getJSONObject("options").getString("option1"),questions.getJSONObject(i).getJSONObject("options").getString("option2"),questions.getJSONObject(i).getJSONObject("options").getString("option3"),questions.getJSONObject(i).getJSONObject("options").getString("option4")));