У меня есть ListView, который связан с ArrayAdapter, где Artist - мой простой класс, который имеет только идентификатор и имя.
Теперь я хочу отфильтровать ListView, поэтому я вызываю:
artistAdapter.getFilter().filter("bla", new Filter.FilterListener() {
public void onFilterComplete(int count) {
Log.d(Config.LOG_TAG, "filter complete! count: " + count); // returns 8
Log.d(Config.LOG_TAG, "adapter count: " + artistAdapter.getCount()); // return 1150
}
});
Первый оператор отладки печатает счет 8. Чтобы подсчет количества копий для списков, начинающихся с "bla", но адаптер не получает его. Второй отладочный оператор печатает счет 1150 элементов. Это полное количество элементов в списке.
Итак, как-то фильтр не сообщает адаптеру, что он отфильтровал базовые данные.
Я хочу знать сейчас: я что-то сделал в своем адаптере, чтобы получать обновления из фильтра? Должен ли я писать собственный фильтр? Что мне делать?