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.