¿Cómo puedo devolver el valor de la función onResponse of Volley?

public class getString { String tag_string_req = "string_raq"; String url = "http://10.0.2.2/eat/locations/index.json"; String result=""; public String get_String() { StringRequest strReq = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String response) { result=response; System.out.println(response); ; } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { System.out.println(volleyError.getMessage()); } }); AppController.getInstance().addToRequestQueue(strReq, tag_string_req); return result; }} 

Quiero construir un objeto de getString y llamar a get_String en otros campos. Pero parece que es difícil obtener el resultado de la onResponse. Sé que no puede funcionar de esta manera actual. ¿Podría alguien ayudarme a resolver este problema?

Desea utilizar las interfaces de devolución de llamada de la siguiente manera:

 public void getString(final VolleyCallback callback) { StringRequest strReq = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String response) { ... // (optionally) some manipulation of the response callback.onSuccess(response); } }... }} 

Cuando la devolución de llamada se define como

 public interface VolleyCallback{ void onSuccess(String result); } 

Ejemplo de código dentro de la actividad:

 public void onResume(){ super.onResume(); getString(new VolleyCallback(){ @Override public void onSuccess(String result){ ... //do stuff here } }); } 

También puede hacer que VolleyCallback más robusto, usando tipos genéricos si desea realizar un procesamiento, o agregando métodos start() , failed(Exception e) , complete() , etc. para hacer un poco más de fine-grained state checking.

Tenga en cuenta que se trata de una llamada asíncrona, por lo que tendrá que actualizar las vistas, etc cuando se obtiene el resultado de nuevo (dentro de success() ).

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.