Jednoduše potřebujete nějaký mechanismus, který bude "sledovat" změny ve vašem vstupním poli a nejsprávnější způsob, jak toho dosáhnout, je zmíněn TextWatcher
Takže to implementujte a v nějaké metodě, která poskytuje TextWatcher
například onTextChanged()
, přiřaďte data ze vstupního pole a odešlete je jako parametr do AsyncTask a v onPostExecute() vytvořte nový adaptér pro AutoCompleteTextView
s daty získanými z MySQL
a přiřaďte Adapter k vašemu widgetu a máte to.
Pseudokód:
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() > 1) {
insertString = s.toString();
new YourTask().execute(insertString);
}
}
a v AsyncTask proveďte něco takového:
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);
}
}
Poznámka: Ve vašem případě je jednodušší vytvořit AsyncTask
vnitřní třídy vaší Activity
třídy a máte přímý přístup k UI
komponenty, aniž byste je předali přes konstruktor.