ListView數據動態刷新


       在Android開發中用到ListView時,經常遇到要更改ListView內容的情形,比如刪除或增加ListView中顯示的條目,這里給大家提供一下思路:不論ListView要顯示的對象是什么(如:Cursor或Array或List),要實現ListView數據的更新,都要手動去更改要顯示的數據對象,然后調用相應的方法(如:requery()或notifyDataSetChanged())來刷新ListView。針對不同的情形,下面給出相應解決辦法的關鍵代碼:

1.用ListView來顯示數據庫的數據時,經常會用到SimpleCursorAdapter來作為ListView的適配器,這時要用到Cursor來訪問數據庫,當數據庫數據發生改變時,需要通過cursor.requery()方法來更新ListView。注:這個方法在API11以后被廢棄了,原因是執行該方法是會查詢數據庫,如果查詢動作是在主線程(UI線程)中完成的,由於查詢過程要耗一定時間,所以有可能引起ANR。可以通過重新獲取一個新的cursor來解決這個問題。

2.當ListView顯示的數據時通過Array或者List傳入的時候,要實現ListView數據的更新,就要手動來更改Array或者List,

以List為例,要調用list.add()或者list.remove()方法來增加或刪除數據。然后再調用adapter.notifyDataSetChanged()來更新顯示數據。

    總的來說,要實現ListView數據的更新,實質是實現對應的Adapter中顯示數據的更新。而要實現Adapter數據更新,就要自己手動來完成對應數據的更改,如上面提到的requery()或者list.add()、list.remove()等,然后再調用adapter的notifyDataSetChanged()方法來實現ListView的刷新。


免責聲明!

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



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