解決SimpleCursorAdapter不能自動更新的問題


      假設場景是這樣的:你使用SimpleCursorAdapter顯示數據,並監聽數據的變化;在數據發生變化的時候,調用cursor的requery,期待UI顯示也跟着變化。

      但是,你可能會發現,UI並沒有如期發生變化;此時,如果將程序切換到后台再切換到前台,UI將會反映最新的數據變化

      上面的現象說明:如果能促使對應Activity的onResume方法的執行,UI就會反映最新的數據變化。

      但是,這不是一個好的方法,我想到的一個方法是(經驗證,可以工作):

if (mCursor != null) {
    mCursor.requery();
    mAdapter.swapCursor(null);
    mAdapter.swapCursor(mCursor);
}

      這段代碼一般放在ContentObserver的onChange方法里面,可以保證UI及時刷新;注意不能使用changeCursor方法,它會導致崩潰。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM