2016-04-05 4 views
0

Ich habe einen Edittext und ich möchte eine Autocomplete-Textansicht aus der Antwort vom Server erhalten, aber nicht in der Lage zu sehen, wie die Anfrage durch Volley zu senden, wenn Benutzer gerade 3 oder 4 Zeichen eingegeben haben. Wie 3 Zeichen eingegeben habe ich um die Anfrage zu machen und die Antwort als Autocomplete zu zeigen. Dann klickt er auf den Vorschlag und dann wird das genaue Ergebnis angezeigt.Wie sende ich eine Post-Anfrage von Volley, während der Benutzer Text in den Editiertext eingibt?

 public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 
      String searchText = e1.getText().toString().trim(); 
      if (searchText.length()>3){ 

       request = new StringRequest(Request.Method.GET, suggesturl + e1.getText().toString(), new Response.Listener<String>() { 
        public void onResponse(String response) { 
         Toast.makeText(MainActivity.this,"Hii",Toast.LENGTH_SHORT).show(); 

         try { 

          JSONArray array1 = new JSONArray(response); 

          for (int i = 0; i < array1.length(); i++) { 
           JSONObject obj1 = array1.getJSONObject(i); 
           id = obj1.getString("Title"); 
           t1.setText(id); 
           //getdetails(id); 

          } 


         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 


        } 
       }, new Response.ErrorListener() { 
        public void onErrorResponse(VolleyError error) { 
         //Citydetails.error(); 


        } 


       }) { 
        @Override 
        protected Map<String, String> getParams() throws AuthFailureError { 
         HashMap<String, String> hashMap = new HashMap<String, String>(); 
         hashMap.put("cityName", city); 
         return hashMap; 
        } 
       }; 
       requestQueue.add(request); 
      } 

Antwort

0

Verwendung TextWatcher -

editText.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

      } 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 

      } 

      @Override 
      public void afterTextChanged(Editable s) { 
       //You can check the number of characters entered and make your API request 
       String searchText = editText.getText().toString().trim(); 
       if(searchText.length > 3){ //Any number you want 
        //Make request here 
       } 
      } 
     }); 
+0

Nichts geschieht ich die GET-Anfrage denken nicht gesendet werden. –

+0

Geben Sie den aktualisierten Code ein. –

Verwandte Themen