Vous avez simplement besoin d'un mécanisme qui "regardera" les changements dans votre boîte de saisie et la manière la plus correcte d'y parvenir est mentionnée TextWatcher
Alors implémentez-le et dans une méthode qui fournit TextWatcher
par exemple onTextChanged()
, attribuez les données de la boîte de saisie et envoyez-les en tant que paramètre à AsyncTask et dans onPostExecute() méthode créer un nouvel adaptateur pour votre AutoCompleteTextView
avec des données récupérées depuis MySQL
et attribuez l'adaptateur à votre widget et vous l'avez.
Pseudo-code :
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() > 1) {
insertString = s.toString();
new YourTask().execute(insertString);
}
}
et dans votre AsyncTask, effectuez quelque chose comme ceci :
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);
}
}
Remarque : Dans votre cas, il est plus facile de créer votre AsyncTask
classe interne de votre Activity
class et vous avez un accès direct à UI
composants sans les passer via le constructeur.