Tôi muốn thay đổi định kỳ các đề xuất do AutoCompleteTextview đưa ra bằng cách lấy danh sách từ một dịch vụ web RESTful và không thể làm cho nó hoạt động trơn tru. Tôi thiết lập một danh sách mã hóa cứng các gợi ý để đảm bảo nó hoạt động:Tự động cập nhật bộ điều hợp AutoCompleteTextView
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, new String[] {"Hi", "Ho"});
speciesName.setAdapter(adapter);//my autocomplete tv
Tôi đã có một TextWatcher trên TextView và khi thay đổi văn bản mà ra mắt một cuộc gọi non-blocking để có được một danh sách mới gợi ý - phần này nhận được một danh sách mới đang hoạt động tốt. Sau đó, tôi muốn đặt lại adapter, như vậy:
public void setOptionsAndUpdate(String[] options) {
Log.d(TAG, "setting options");
//speciesName.setAdapter((ArrayAdapter<String>)null);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, options);
speciesName.setAdapter(adapter);
}
Phương pháp này được gọi, nhưng không hoạt động - danh sách đề xuất hoặc biến mất hoặc những gợi ý hiển thị vẫn không thay đổi bất chấp những lời kêu gọi setAdapter
.
Đây có phải là phương pháp phù hợp không? Tôi đã xem SimpleCursorAdapter
nhưng không thể xem cách đăng ký dịch vụ web của mình với tư cách nhà cung cấp nội dung. (Đó là dạng http://www.blah.com/query?term=XX, nơi mà các XX là đầu vào từ ứng dụng của tôi, và câu trả lời là một mảng JSON các chuỗi.)
Tôi đang làm điều gì đó tương tự TẠI ĐÂY !!! http://stackoverflow.com/questions/12854336/autocompletetextview-backed-by-cursorloader – toobsco42