當我有一個ListActivity
其使用SimpleCursorAdapter
顯示數據庫的內容。我在底層數據庫更改時刷新視圖時遇到問題。的Android:光標重新查詢更換整個數據庫
作爲一個實驗,我在活動的onResume()
中添加了對Cursor.requery()
的調用,以便進行調試,所以我所要做的就是翻轉到不同的活動並返回,並且它應該強制刷新。我也重寫了onContentChanged()
,以進行調試。它蒸發requery()
被調用,但這不是導致對onContentChanged()
通話。
我懷疑光標使用陳舊緩存數據。提示更改的操作實際上涉及擦除和更換整個數據庫。我認爲我需要扔掉遊標並重新從頭開始重建它,而不是簡單地重新查詢。
我已經嘗試關閉並重新打開底層數據庫,並與Cursor.requery()
一起使用,但光標似乎不喜歡將db從它的腳下拉出來,就像這樣。 (這個清單最後是空的。)
編輯:我也試過撥打adapter.notifyDataSetChanged()
旁邊requery()
在onResume()
,但它沒有區別。
有什麼建議嗎?
是的,那也沒有效果。我會更新這個問題。 – 2011-01-09 23:07:59