入力ボックスの変更を「監視」するメカニズムが必要なだけで、それを実現する最も正しい方法がTextWatcher
に記載されています。
したがって、それを実装し、TextWatcher
を提供するいくつかのメソッドで実装します たとえば、 onTextChanged()
、inputboxからデータを割り当て、それらをパラメータとして 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
に直接アクセスできます コンポーネントをコンストラクター経由で渡さずに。