我有一个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)
如何解决这个问题?
答案 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")));