Comment puis-je retourner de la valeur à partir de la fonction onResponse de 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;
}}
Je voudrais construire un objet de getString et appel get_String dans d'autres domaines. Mais il semble qu'il est difficile d'obtenir le résultat de la onResponse. Je sais que ça ne peut pas fonctionner de cette façon. Quelqu'un pourrait-il m'aider à régler ce problème?
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez utiliser le callback interfaces comme ceci:
Où le rappel est défini comme
Exemple de code à l'intérieur de l'activité:
Vous pouvez également faire
VolleyCallback
plus robuste, à l'aide de types génériques si vous voulez faire le traitement, ou l'ajout destart()
,failed(Exception e)
,complete()
, etc méthodes pour faire un peu plus fine de l'état de la vérification.Garder à l'esprit que c'est un appel asynchrone, de sorte que vous aurez à mettre à jour les vues, etc lorsque vous obtenez le résultat en arrière (à l'intérieur de
success()
).