Du har simpelthen brug for en eller anden mekanisme, der vil "se" ændringer i din inputboks, og den mest korrekte måde, hvordan du opnår det, er nævnt TextWatcher
Så implementer det og i en eller anden metode, der giver TextWatcher
for eksempel onTextChanged()
, tildel data fra inputboksen og send dem som parameter til AsyncTask og i onPostExecute() metode oprette ny adapter til din AutoCompleteTextView
med data hentet fra MySQL
og tildel Adapter til din widget, og du fik det.
Pseudokode:
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() > 1) {
insertString = s.toString();
new YourTask().execute(insertString);
}
}
og i din AsyncTask skal du udføre noget som dette:
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);
}
}
Bemærk: I dit tilfælde er det nemmere at lave din AsyncTask
indre klasse af din Activity
klasse, og du har direkte adgang til UI
komponenter uden at sende dem via constructor.