Bạn chỉ cần một số cơ chế sẽ "theo dõi" các thay đổi trong hộp nhập liệu của bạn và cách chính xác nhất để đạt được nó đã được đề cập TextWatcher
Vì vậy, hãy triển khai nó và trong một số phương pháp cung cấp TextWatcher
ví dụ: onTextChanged ()
, gán dữ liệu từ hộp nhập liệu và gửi chúng dưới dạng tham số tới AsyncTask và trong onPostExecute () phương pháp tạo Bộ điều hợp mới cho AutoCompleteTextView
của bạn với dữ liệu được truy xuất từ MySQL
và gán Bộ điều hợp cho tiện ích của bạn và bạn đã nhận được nó.
Mã giả:
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() > 1) {
insertString = s.toString();
new YourTask().execute(insertString);
}
}
và trong AsyncTask của bạn, hãy thực hiện như sau:
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);
}
}
Lưu ý: Trong trường hợp của bạn, dễ dàng hơn để tạo AsyncTask
lớp bên trong của Activity
của bạn và bạn có quyền truy cập trực tiếp vào UI
các thành phần mà không cần chuyển chúng qua hàm tạo.