【发布时间】:2020-01-26 06:21:36
【问题描述】:
我的代码是这样的,我不知道为什么它得到一个空数组,即使我在请求期间将元素添加到数组中。
公共类 MainActivity 扩展 AppCompatActivity {
private List<Question> questionList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
questionList = new QuestionBank().getQuestions();
Log.d("Main", "processFinished: " + questionList);
}
// 请求 公共类 QuestionBank {
ArrayList<Question> questionArrayList = new ArrayList<>();
private String url = "https://raw.githubusercontent.com/curiousily/simple-quiz/master/script/statements-data.json";
public List<Question> getQuestions() {
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
for (int i = 0; i < response.length(); i++) {
try {
Question question = new Question();
question.setAnswer(response.getJSONArray(i).get(0).toString());
question.setAnswerTrue(response.getJSONArray(i).getBoolean(1));
questionArrayList.add(question);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
AppController.getInstance().addToRequestQueue(jsonArrayRequest);
return questionArrayList;
}
}
// 记录结果
D/Main: processFinished: []
【问题讨论】:
-
您确定您的 JsonArrayRequest 将项目添加到数组中吗?尝试对其进行调试
-
添加到列表时在 onResponse 中添加一条日志语句,您会看到问题
-
添加回调接口并从onResponse(JSONArray response)中传递和调用
标签: java android arrays android-volley