Mysql
 sql >> Database >  >> RDS >> Mysql

AutoCompleteTextView con dati MySQL

Hai semplicemente bisogno di un meccanismo che "osserva" i cambiamenti nella tua casella di input e il modo più corretto per ottenerlo è menzionato TextWatcher

Quindi implementalo e in qualche metodo che fornisce TextWatcher ad esempio onTextChanged() , assegna i dati dalla casella di input e inviali come parametro a AsyncTask e in onPostExecute() crea un nuovo adattatore per il tuo AutoCompleteTextView con i dati recuperati da MySQL e assegna Adapter al tuo widget e il gioco è fatto.

Pseudo-codice:

public void onTextChanged(CharSequence s, int start, int before, int count) {
   if (s.length() > 1) {
      insertString = s.toString();
      new YourTask().execute(insertString);                  
   }
}

e nel tuo AsyncTask, esegui qualcosa del genere:

protected List<String> doInBackground() {
   // fetchning data from MySQL
   return list;
}

public void onPostExecute(List<String> result) {
   if (!result.isEmpty()) {
       SomeAdapter adp = new SomeAdapter(context, layout, result);
       actv.setAdapter(adp);
   }
}

Nota: Nel tuo caso è più facile creare il tuo AsyncTask classe interna della tua Activity classe e hai accesso diretto a UI componenti senza passarli tramite il costruttore.