坚持从内部阶级到外部世界的可变价值

时间:2014-07-21 11:54:48

标签: java android android-volley

我有以下代码:

String response1;
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                response1 = response;
 //This log gives result
                Log.d("volley", response);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

                Log.d("volley", error.toString());
            }
        });

        requestQueue.add(stringRequest);
  //This log give null pointer exception
        Log.d(TAG, response1);
 //How I can make sth like this:
 String [] data = doSthWithThisValue(response1)

如代码中所述,变量response1在Response.Listener类中给出结果。我想在这个内部类之外使用这个值。我怎么能这样做? 我已经阅读了一些帖子来将变量声明为最终

2 个答案:

答案 0 :(得分:1)

此代码似乎是您使用Android-Volley来处理网络请求。所以 从服务器获得正确的响应(状态正常)后,将调用onResponse

并且您希望打印response1的值,该值在调用onResponse函数之前调用,即。在设置值之前打印response1的日志值。

因此在Log.d(TAG, response1);方法中使用onResponse

答案 1 :(得分:0)

在你发布的代码中,没有任何东西调用onResponse的内部类方法,这是response1设置的地方。您正在创建内部类,然后几乎立即调用onResponse。我假设onResponse应该被某种网络事件调用。