ListView.getCheckedItemCount()在setItemChecked之后不会改变值

时间:2014-01-01 12:43:51

标签: android android-listview

我有一个ListView允许使用ArrayAdapter配置多个选项,一切正常但是当我尝试将某些选定项设置为false时getCheckedItemCount值不会改变

只是为了复制行为,我使用下面显示的代码取消选择所有项目,并且getCheckedItemCount调用之前和之后的打印值相同

为什么?

for (MyObject post : list) {
    int position = photoAdapter.getPosition(post);
    System.out.println("count before " + photoListView.getCheckedItemCount());
    photoListView.setItemChecked(position, false);
    System.out.println("count after " + photoListView.getCheckedItemCount());
}

显然要取消选中我们必须调用clearChoices()的所有项目,但上面的代码仅用于演示问题

1 个答案:

答案 0 :(得分:1)

@dafi我不确定这是否适用于你的情况但是在解决方案下给我正确的数量。最简单的解决方案是手动清除已检查的计数。您只需尝试一下。

this.markersList.clearChoices();
for(int i = 0; i < this.markersList.getCount(); i++)
{        
this.markersList.setItemChecked(i, true);
}

尝试这个解决方案。