Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

AutoCompleteTextView com dados MySQL


Você simplesmente precisa de algum mecanismo que "observe" as alterações em sua caixa de entrada e a maneira mais correta de alcançá-lo é mencionada TextWatcher

Então implemente-o e em algum método que forneça TextWatcher por exemplo onTextChanged() , atribua dados da caixa de entrada e envie-os como parâmetro para AsyncTask e em onPostExecute() método crie um novo adaptador para seu AutoCompleteTextView com dados recuperados de MySQL e atribua Adapter ao seu widget e você conseguiu.

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

e no seu AsyncTask, execute algo assim:
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);
   }
}

Observação: No seu caso é mais fácil fazer sua AsyncTask classe interna de sua Activity class e você tem acesso direto à UI componentes sem passá-los via construtor.