Mysql
 sql >> Datenbank >  >> RDS >> Mysql

AutoCompleteTextView mit MySQL-Daten

Sie brauchen einfach einen Mechanismus, der Änderungen in Ihrem Eingabefeld "beobachtet", und der korrekteste Weg, dies zu erreichen, ist der erwähnte TextWatcher

Implementieren Sie es also in einer Methode, die TextWatcher bereitstellt zum Beispiel onTextChanged() , Daten aus Inputbox zuweisen und als Parameter an AsyncTask senden und in onPostExecute() Methode neuen Adapter für Ihre AutoCompleteTextView erstellen mit Daten, die von MySQL abgerufen werden und weisen Sie Adapter Ihrem Widget zu und Sie haben es.

Pseudocode:

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

und führen Sie in Ihrer AsyncTask etwa Folgendes aus:

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);
   }
}

Hinweis: In Ihrem Fall ist es einfacher, Ihre AsyncTask zu erstellen innere Klasse Ihrer Activity Klasse und Sie haben direkten Zugriff auf UI Komponenten, ohne sie über den Konstruktor zu übergeben.