私は
- クイズに参加するためのアプリを作成します。
- json から質問を取得します。
- BaseAdapter を拡張するカスタム アダプターを使用して、質問とオプションを設定できます。
問題
リストが大きくなるにつれて、答えるのが難しくなります。私が望むのは、各質問を 1 つのレイアウトで表示することです。ユーザーが [次へ] をクリックすると、次の質問が読み込まれます。
QuizView.java
List<Quiz> quizList = new ArrayList<Quiz>();
String json = "[{\"question\": \"What?\", \"option1\": \"alpha\" , \"option2\": \"beta\" , \"option3\": \"gamma\" , \"option4\": \"alpha\"},{\"question\": \"What?\", \"option1\": \"alpha\" , \"option2\": \"beta\" , \"option3\": \"gamma\" , \"option4\": \"alpha\"}]";
Gson gson = new Gson();
JsonParser parser = new JsonParser();
JsonArray array = parser.parse(json).getAsJsonArray();
for(JsonElement obj : array) {
Quiz quiz = gson.fromJson(obj,Quiz.class);
String question = quiz.getQuestion();
System.out.println("Question: "+question);
quizList.add(quiz);
Quiz.java
public class Quiz {
public String question;
public String option1;
public String option2;
public String option3;
public String option4;
public void setQuestion(String question) {
this.question = question;
}
public String getQuestion() {
return question;
}
public void setOption1(String option1) {
this.option1 = option1;
}
public String getOption1() {
return option1;
}
public void setOption2(String option2) {
this.option2 = option2;
}
public String getOption2() {
return option2;
}
public void setOption3(String option3) {
this.option3 = option3;
}
public String getOption3() {
return option3;
}
public void setOption4(String option4) {
this.option4 = option4;
}
public String getOption4() {
return option4;
}
}