Mysql
 sql >> Base de données >  >> RDS >> Mysql

AutoCompleteTextView avec des données MySQL

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.