在我的应用程序中,我使用列表中选中的项目数。 我也在更新列表中的项目,删除它们并插入新项目。
案例场景:
notifyDataSetChange
my component
My component
询问mMyListView
已检查项目数View
正在返回旧号码我正在浏览Android源代码并发现即使我调用notifyDataSetChange
,handleDataChanged
方法(某些package-protected
AbsListView
方法)也不会立即调用,但稍后调用。这是负责更改已检查项目数的功能。
我通过仅使用我自己的类扩展ListView
来解决它:
@Override
public long[] getCheckedItemIds() {
handleDataChanged();
return super.getCheckedItemIds();
}
要获取已检查的项目编号,我正在调用mMyListView.getCheckedItemIds().length
(因为API级别我无法使用getCheckedItemCount
)。
现在它有效,但我不喜欢这个解决方案。我在这里错过了什么吗?