Java 如何从OnResponse方法中访问响应值?

Java 如何从OnResponse方法中访问响应值?,java,android,Java,Android,我想在logcat中查看我的数组列表,但当我在logcat中运行我的应用程序时,它显示我的数组列表的大小为零,并且其中并没有元素 这是我的活动 public class Tmp2 extends AppCompatActivity { public RequestQueue queue; static ArrayList<Question> array_list; @Override protected void

我想在logcat中查看我的数组列表,但当我在logcat中运行我的应用程序时,它显示我的数组列表的大小为零,并且其中并没有元素

这是我的活动

   public class Tmp2 extends AppCompatActivity {
        public RequestQueue queue;
        static ArrayList<Question> array_list;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_tmp2);
            array_list = new ArrayList<>();
            queue= AppController.getInstance(this).getRequestQueue();
            JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET,
                    "https://raw.githubusercontent.com/curiousily/simple-quiz/master/script/statements-data.json",
                    (JSONArray) 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((Boolean) response.getJSONArray(i).get(1));
                                    array_list.add(question);
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }Log.d("wakwash","array "+array_list.size());
                        }
                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                }
            });
            Log.d("json","array "+array_list.size());
            queue.add(jsonArrayRequest);
            Log.d("json","array "+array_list);
        }
    }

它显示我的数组的大小为零,并且并没有元素,但当我在onResonse中使用此日志时,它会同时给出大小和元素。如何从响应中访问我的数组列表这是因为即使在收到响应之前,您也将数组大小记录在错误的位置,您正在进行异步调用,但您编写的日志以同步方式执行,并且始终为空。 当收到您的响应时,即在onResponse回调中记录数据

public class Tmp2 extends AppCompatActivity {
        public RequestQueue queue;
        static ArrayList<Question> array_list;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_tmp2);
            array_list = new ArrayList<>();
            queue= AppController.getInstance(this).getRequestQueue();
            JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET,
                    "https://raw.githubusercontent.com/curiousily/simple-quiz/master/script/statements-data.json",
                    (JSONArray) 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((Boolean) response.getJSONArray(i).get(1));
                                    array_list.add(question);
                                    
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }Log.d("wakwash","array "+array_list.size());
                             // Log it over here
                             Log.d("json","array "+array_list.size());                     
                             Log.d("json","array "+array_list);
                        }
                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                }
            });
            //Log removed from here
            queue.add(jsonArrayRequest);
        }
    }
public类Tmp2扩展了appcompative活动{
公共请求队列;
静态数组列表数组_列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tmp2);
array_list=new ArrayList();
queue=AppController.getInstance(this.getRequestQueue();
JsonArrayRequest JsonArrayRequest=新的JsonArrayRequest(Request.Method.GET,
"https://raw.githubusercontent.com/curiousily/simple-quiz/master/script/statements-data.json",
(JSONArray)空,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
对于(inti=0;我请不要滥用粗体。这会使你的文章更难阅读
public class Tmp2 extends AppCompatActivity {
        public RequestQueue queue;
        static ArrayList<Question> array_list;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_tmp2);
            array_list = new ArrayList<>();
            queue= AppController.getInstance(this).getRequestQueue();
            JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET,
                    "https://raw.githubusercontent.com/curiousily/simple-quiz/master/script/statements-data.json",
                    (JSONArray) 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((Boolean) response.getJSONArray(i).get(1));
                                    array_list.add(question);
                                    
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }Log.d("wakwash","array "+array_list.size());
                             // Log it over here
                             Log.d("json","array "+array_list.size());                     
                             Log.d("json","array "+array_list);
                        }
                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                }
            });
            //Log removed from here
            queue.add(jsonArrayRequest);
        }
    }