Я пытался отфильтровать свой ListView из своего поля EditText, но в настоящее время он не работает.
У меня есть ListView, который правильно получает данные, и они добавляются в мой собственный ListView с помощью класса ArrayAdapter и моего собственного класса ArrayList. Когда я, например, набираю «таблицу», я хочу, чтобы она отсортировывалась от загруженных заголовков в моем ListView, и тогда он должен был показать мне оставшиеся элементы и соответствующую таблицу.
Мой текущий код:
private ArrayList<Order> orders; /* ArrayList class with my own Order class to
define title, info etc. */
private OrderAdapter adapter; //Own class that extends ArrayAdapter
orders = new ArrayList<Order>();
adapter = new OrderAdapter(this, R.layout.listrow, orders); /* listrow defining a
single item in my ListView */
setListAdapter(adapter); //Set our adapter to a ListView
search.addTextChangedListener(filterTextWatcher); //search is my EditText
private TextWatcher filterTextWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
adapter.getFilter().filter(s); //Filter from my adapter
adapter.notifyDataSetChanged(); //Update my view
}
};
Хорошо, так как я могу этого добиться? Когда я ввожу какое-то значение в поле EditText, все исчезает, даже если есть совпадение.
Заранее спасибо и сообщите мне, нужны ли вам дополнительные фрагменты кода или если этот вопрос мне неясен!