[英]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.