[英]Return data from inside an anonymous inner class for method it is contained in
我有一个进行API调用的方法,该方法需要匿名内部类。 在匿名内部类内部,有一个onResponse
方法,该方法的返回类型为void
,可以在其中访问JSON。 我希望该方法返回JSON。
public JSONObject makeAPIRequest() {
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>(){
@Override
public void onResponse(JSONObject response){
//have makeAPIRequest() return response
},
new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
...
}
});
}
简短的答案-您需要重构您的方法,以便它不是程序性的,并使用return
...
例如,
public void makeAPIRequest(Response.Listener<JSONObject> listener) {
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, listener);
// TODO: submit request
}
然后,在其他类中,您将有一个用作“返回”的回调
apiInstance.makeAPIRequest(new Response.Listener<JSONObject>(){
@Override
public void onResponse(JSONObject response){
// do stuff
},
new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
...
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.