У меня возникла проблема с функцией getCount()
, которая предоставляется с ListView
. Я пытаюсь получить количество строк, отображаемых в ListView
, когда фильтрую их методом onQueryTextChange()
, предоставленным SearchView
. К сожалению, число, которое я получаю, всегда отключается на одну итерацию. Например, если я начинаю с 4 элементов в ListView
и фильтрую их, чтобы в ListView
был только 1 элемент, функция getCount()
возвращает 4 даже если я хочу 1. Если я сразу после этого снова изменю фильтр, то получу 1. Как получить, чтобы при фильтрации ListView
в методе onQueryTextChange()
будет дан соответствующий номер getCount()
?
@Override
public boolean onQueryTextChange(String newText) { sizeOfList = listView.getAdapter().getCount(); //changes based on the number of items in the listview....so changes when filtered
Toast.makeText(getActivity(), String.valueOf(sizeOfList), Toast.LENGTH_SHORT).show(); if (TextUtils.isEmpty(newText)){
listView.clearTextFilter(); for (int i = 0; i < actualposList.size(); i++){
listView.setItemChecked(actualposList.get(i), true);
Log.d("qqqq", String.valueOf(actualposList.get(i)));
} } else { listView.setFilterText(newText); if (!actualposList.isEmpty()){
for (int i = 0; i < list.size(); i++){
//listView.setItemChecked(i, false);
}
}
} return true;
}