2010-11-27 211 views
2

我看到這個問題回答了幾次,其中建議使用BaseAdapter中的notifyDataSetChanged()方法。當底層數據發生變化時刷新視圖顯示

當應用程序不使用任何適配器時,是否有刷新的方法?我有一個簡單的應用程序,其中使用了一些具有偏好的活動,以及具有文本視圖和按鈕的相對佈局。目前我不使用任何適配器,如SimpleAdapter或ArrayAdapter或CursorAdapter。在我看來,我必須創建其中的一個才能使用notifyDataSetChanged()?對我來說沒有更簡單的方法嗎?

回答

2

看起來像(我可能錯了,但它看起來像)你不趕上這些類的目的 - SimpleAdapter,ArrayAdapterCursorAdapter。他們預計在Activity(或更好 - 在ListActivity之內)內使用ListView。如果你不使用ListView那麼這些adapers很可能對你沒用。

我假設你的數據以某種方式持續存在(SharedPreferences或文件)。所以如果你開始你的任何活動,那麼它只是讀取數據來填充視圖。在這種情況下,不需要額外的東西。如果您需要爲當前可見的Activity重新加載數據,則只需重新讀取持久存儲中的數據並重新填充視圖即可。

+0

我確實使用SharedPreferences。我有一個顯示屏幕的活動。我設置了一個鬧鐘,鬧鈴響起,服務開始,服務在屏幕頂部的新活動中啓動鬧鐘對話框。用戶單擊確定使對話框消失。當它消失時,我回到原始屏幕,但原始屏幕保持不動,沒有變化。我只需要在原始屏幕上更改一個字符串,因爲用戶做了什麼。我想我應該重新創建整個屏幕? – mlw 2010-11-28 16:22:39

0

如果您的數據正在改變,您需要刷新您的視圖,數據如何實際更改?它是在一個單獨的線程中,還是,你是否想要定期發生某些事情(輪詢RSS提要或其他)?

0

我有類似的問題。我有一個收音機組,每個單選按鈕都有一個標籤。當屏幕旋轉時,我用一個具有相同ID的單選按鈕&單選按鈕使用不同的佈局。我在onCreate()中調用了setContentView():在旋轉後,「舊」標籤將顯示在新佈局上(奇怪)。當我將setContentView()移動到onResume時,一切似乎都會更新。感謝Arhimed在上面的回答。

相關問題