2016-05-04 9 views
0

Mein SearchActivity.java sieht wie folgt aus:Volley JSON Anfrage nicht geben mir Antwort

public class SearchActivity extends AppCompatActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_search); 

    final EditText editText = (EditText) findViewById(R.id.searchView); 
    editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      boolean handled = false; 
      if (actionId == EditorInfo.IME_ACTION_SEARCH) { 
       String query = editText.getText().toString(); 
       doMySearch(query); 
       handled = true; 
      } 
      return handled; 
     } 
    }); 
} 
public void doMySearch(String query) { 
    System.out.println("print if doMySearch was opened"); 
    System.out.println(query); 
    List<Show> subscribedShowsList = new ArrayList<Show>(); 
    String url = "http://api.tvmaze.com/search/shows?q="; 
    String final_url = url + query; 
    JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, final_url, (String)null, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 
        System.out.println("print if we got to onResponse"); 
        String resss = response.toString(); 
        System.out.println(resss); 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
       } 
      }); 

    System.out.println("this is request" + request); 
} 
} 

Und die Konsolenausgabe ist:

05-04 19:46:39.054 29615-29615/com.example.user.test I/System.out: print if  doMySearch was opened 
05-04 19:46:39.054 29615-29615/com.example.user.test I/System.out: girls 
05-04 19:46:39.054 29615-29615/com.example.user.test I/System.out: this is request[ ] http://api.tvmaze.com/search/shows?q=girls 0xfc1517a8 NORMAL null 

Die URL korrekt ist, aber wie Sie sehen können onResponse lief nicht einmal. Ich habe versucht sowohl JSONArrayRequest und JSONObjectRequest und sie (nicht) funktionieren gleich. Ich habe keine Ahnung, was hier falsch sein kann. Irgendwelche Vorschläge?

Antwort

1

Sie benötigen eine RequestQueue, um eine Volleyanforderung auszulösen. Sie haben lediglich eine anonyme Klasse erstellt, die die onResponse nicht ausführt, wenn Sie sie erstellen.

JsonArrayRequest request = new JsonArrayRequest(...); 
RequestQueue queue = Volley.newRequestQueue(this); 
queue.add(request); 
Verwandte Themen