我的项目使用 commonsguy 的SQLiteCursorLoader 库将数据从数据库加载到 ListView 中。这些数据中有一个简单的布尔值(就 SQLite 支持布尔值而言......也就是说,一个永远是 0 或 1 的数字),它告诉复选框的状态。如果我更改列表中复选框的状态,然后将项目从列表中滚动出来,则列表项将返回到传入光标时的状态,尽管基础数据库已更改。如果我更改了一堆复选框的状态,然后激活列表的MultiChoiceMode
,所有显示的项目将恢复到它们最初传入光标时的状态,尽管底层数据库已经更改。
有没有办法刷新光标?Cursor.requery()
已弃用,我不想在Cursor
每次选中复选框时都创建一个新的复选框,这种情况经常发生。我也不确定restartLoader()
多次调用将如何工作,性能方面,特别是因为我曾经onLoadFinish()
执行一些动画。