Mysql
 sql >> Baza danych >  >> RDS >> Mysql

AutoCompleteTextView z danymi MySQL

Potrzebujesz po prostu jakiegoś mechanizmu, który będzie "obserwował" zmiany w polu wprowadzania, a najpoprawniejszym sposobem, jak to osiągnąć, jest wspomniany TextWatcher

Więc zaimplementuj go w jakiejś metodzie, która zapewnia TextWatcher na przykład onTextChanged() , przypisz dane z pola wprowadzania i wyślij je jako parametr do AsyncTask oraz w onPostExecute() metoda utwórz nowy adapter dla swojego AutoCompleteTextView z danymi pobranymi z MySQL i przypisz Adapter do swojego widżetu i masz go.

Pseudokod:

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

a w swoim AsyncTask wykonaj coś takiego:

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

Uwaga: W twoim przypadku łatwiej jest wykonać AsyncTask wewnętrzna klasa twojego Activity klasy i masz bezpośredni dostęp do UI komponenty bez przekazywania ich przez konstruktor.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rozłączenie bazy danych mysql węzła JS

  2. Kolejność konstruktora kryteriów JPA według kolumny sumy

  3. Jak wybrać nazwę kolumny ze spacją w MySQL?

  4. mySQL znajduje duplikaty i usuwa je

  5. Jak pokazać tablice wielowymiarowe wstawić do tabeli MySQL?