Просто се нуждаете от някакъв механизъм, който ще "наблюдава" промените във вашето поле за въвеждане и най-правилният начин как да го постигнете е споменат TextWatcher
И така, внедрете го и в някакъв метод, който предоставя TextWatcher
например onTextChanged()
, задайте данни от полето за въвеждане и ги изпратете като параметър към AsyncTask и в onPostExecute() създава нов адаптер за вашия AutoCompleteTextView
с данни, извлечени от MySQL
и задайте адаптер към вашата джаджа и сте го получили.
Псевдокод:
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() > 1) {
insertString = s.toString();
new YourTask().execute(insertString);
}
}
и във вашата AsyncTask изпълнете нещо подобно:
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);
}
}
Забележка: Във вашия случай е по-лесно да направите своя AsyncTask
вътрешен клас на вашата Activity
клас и имате директен достъп до UI
компоненти, без да ги предавате през конструктор.