Метод ListView getCount () отключается за одну итерацию

topgun741 спросил: 26 ноября 2017 в 04:43 в: java

У меня возникла проблема с функцией 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;
}

0 ответов