2016-05-02 8 views
0

Ich benutze volley in der Android-Aktivität, und eine Anfrage machen und bekam die Antwort, aber ich möchte die Antwort vielleicht in einer anderen Methode behandeln, aber es wird nicht funktionieren, was soll ich tun ?Wie die Antwort von Volley in Android

public class TestActivity extends Activity { 

RequestQueue queue; 

private String result; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    String url = "www.google.com/something/I/need"; 

    queue = Volley.newRequestQueue(this); 

    StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        // Do something with the response 
        Log.i("resp", response); 
        // I want to do sth with the response out of here 
        // maybe like this, let result = response 
        // and see the log at the end of the code 
        // but it failed, what should I do? 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        // Handle error 
        Log.e("error", error.toString()); 
       } 
      }); 
    queue.add(stringRequest); 
    Log.e("result", result); 
} 

Antwort

0

Denken Sie darüber nach, was du tust: Du bist ein StringRequest zu schaffen, dann fügen Sie sie in die Anforderungswarteschlange, aber dann versuchen Sie sofort das Ergebnis zu überprüfen. Dies funktioniert natürlich nicht, da die Anfrage noch nicht bearbeitet wurde.

Ihre Antwort wird in der onResponse Methode ankommen, und nur dann werden Sie in der Lage sein, etwas damit zu tun. Sie können result = response hier einstellen, aber Sie können den Wert nur sehen, wenn der onResponse aufgerufen wird, der einige Zeit dauern kann.

Hoffe das klärt die Dinge.

1

Die Volley-Anfragen sind asynchron, so dass das Programm nach dem Senden der Anfrage die Ausführung fortsetzt, ohne auf die Antwort zu warten. Der Code, der das Ergebnis verarbeitet, wird in die OnResponse-Methode eingefügt. Für genauere Hilfe erklären Sie, warum Sie sich von der Methode OnResponse

abmelden möchten
Verwandte Themen