gpt4 book ai didi

java - ListView getCount() 方法关闭了一次迭代

转载 作者:太空宇宙 更新时间:2023-11-04 10:50:36 24 4
gpt4 key购买 nike

我遇到了 ListView 提供的 getCount() 函数的问题。当我使用 SearchView 提供的 onQueryTextChange() 方法过滤它们时,我试图获取 ListView 中显示的行数。不幸的是,我得到的数字总是偏离一次迭代。例如,如果我从 ListView 中的 4 个项目开始并对其进行过滤,以便 ListView 中应该只有 1 个项目,则 getCount() 函数会返回 4,即使我想要 1。如果我在此之后再次更改过滤器,则会得到 1。如何获取它,以便当我在 onQueryTextChange() 方法中过滤 ListView 时,相应的 get Count()会给出数字?

@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;
}

最佳答案

你能展示一下clearFilterText和setFilterText的作用吗?如果他们以任何方式修改列表,您需要调用adapter.notifyDataSetChanged,以便更改反射(reflect)在适配器中

关于java - ListView getCount() 方法关闭了一次迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47919090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com