我的項目使用SQLiteCursorLoader library from commonsguy將數據從數據庫加載到ListView中。其中的數據是一個簡單的布爾值(只要SQLite支持布爾值...即只有0或1的數字),它告訴複選框的狀態。如果我更改列表中某個複選框的狀態,然後將該項目從列表中滾動出來,則列表項將返回到光標傳入時的狀態,儘管基礎數據庫已更改。如果我更改了一堆複選框的狀態,然後激活列表的MultiChoiceMode
,則儘管底層數據庫已更改,但顯示的所有項目都將恢復爲光標最初傳入時的狀態。刷新SQLiteCursorLoader的遊標
有沒有辦法刷新光標? Cursor.requery()
已過時,我不希望每次選中複選框時都會創建新的Cursor
,這會發生很多情況。我也不確定如何調用restartLoader()
幾次才能正常工作,特別是在我使用onLoadFinish()
執行某些動畫時。
雖然我承認這是一般的好建議,但在我的特殊情況下,建議並不能幫助我。我的應用程序旨在成爲銀行分類帳,它使用關係數據庫來跟蹤所有重要數據,包括用戶是否覈銷了某項以標記交易爲已過帳。列表視圖具有屬性'android:choiceMode =「multipleChoiceModal」',因此用戶可以激活'ActionMode'從數據庫中一次刪除多個項目。如果你願意的話,你可以在這裏查看源代碼:https://bitbucket.org/MowDownJoe/vault-foss – MowDownJoe
@MowDownJoe:「在我的特殊情況下不能幫助我」 - 那麼你需要改變你的情況。無論您是否喜歡,您都需要重新查看遊標或停止使用CursorAdapter。 – CommonsWare