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.