Return data from inside an anonymous inner class for method it is contained in
我有一个进行API调用的方法,该方法需要匿名内部类。在匿名内部类内部,有一个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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){ ... } }); } |
简短的回答-您需要重构您的方法,使其不具有程序性,并使用
例如,
1 2 3 4 |
然后在其他类中,有一个回调充当您的"返回"
1 2 3 4 5 6 7 8 9 10 11 12 | apiInstance.makeAPIRequest(new Response.Listener<JSONObject>(){ @Override public void onResponse(JSONObject response){ // do stuff }, new Response.ErrorListener(){ @Override public void onErrorResponse(VolleyError error){ ... } }); |