我有以下代码:
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类中给出结果。我想在这个内部类之外使用这个值。我怎么能这样做? 我已经阅读了一些帖子来将变量声明为最终
答案 0 :(得分:1)
此代码似乎是您使用Android-Volley
来处理网络请求。所以
从服务器获得正确的响应(状态正常)后,将调用onResponse
。
并且您希望打印response1
的值,该值在调用onResponse
函数之前调用,即。在设置值之前打印response1
的日志值。
因此在Log.d(TAG, response1);
方法中使用onResponse
。
答案 1 :(得分:0)
在你发布的代码中,没有任何东西调用onResponse的内部类方法,这是response1设置的地方。您正在创建内部类,然后几乎立即调用onResponse。我假设onResponse应该被某种网络事件调用。