Android – количество просмотров списка просмотров

Поэтому после того, как я установил фильтр в своем списке:

//Log adapter count before filter listView.getFilter().filter(searchStr) //Log adapter count after filter 

То, что я пытаюсь достичь, – это получить счетчик результата этой фильтрации. Например, если раньше было 10 элементов, я применяю фильтр, так что теперь появится только 5 элементов, я хочу получить этот счет «5». Я пробовал проверять счетчик адаптера до и после фильтра без везения. Они показывают один и тот же счетчик (я использую BaseExpandableListAdapter), если я применяю фильтр, и если я снова применяю фильтр, число меняется с предыдущего (но до и после фильтра все равно одинаково).

Ниже приведен пример того, что я получаю в своих журналах:

 Before filter the count is 10. After filter the count is 10. Before filter the count is 8. After filter the count is 8. 

Я подумал, что, возможно, мой адаптер сразу не получает отраженный счет, но на втором фильтре он меняет значение, поэтому я думал, что notifyDataSetChanged после того, как фильтр изменит его, но это не так. Любая помощь будет оценена по достоинству.

Благодарю.

Вот как мне удалось это сделать:

 myAdapter.getFilter().filter(searchText, new Filter.FilterListener() { public void onFilterComplete(int count) { Log.d("log", "result count:" + count); } }); 

Попробуйте вызвать listview.getCount() после применения фильтра.