2011-05-19 48 views
0

我有一組數據,它我想顯示在一個AdapterView,我也將要在運行時在正在顯示的視圖改變用戶。我如何爲其數據已更改的對象重新顯示自己的視圖?在適配器視圖更新視圖,同時可見

例如,我有一套書,用戶可以下載,我想顯示在除了目前正在書籍下載書籍。我想更新用戶實時查看的下載進度。

在這種情況下,我應該如何通知我的觀點,即需要更新?我應該對視圖本身進行回調,還是應該使AdapterView無效?如果我對視圖有回調,我想小心不要造成任何泄漏。

回答

1

您應該可以執行notifyDataSetChanged來強制更新View(請參閱http://developer.android.com/reference/android/widget/BaseAdapter.html#notifyDataSetChanged%28%29),並且這應該是您所需要的。

+0

感謝。問題在於,這會強制刷新所有視圖。有沒有辦法限制這隻有一個視圖重繪本身?或者我試圖對此進行過度設計? – vol 2011-05-21 16:51:02

+0

嗯,它可能,但因爲'ListView's重用個別行,它會有點棘手。我猜你可能標記每一行與您的適配器的'getView'實現一鍵關聯的數據,然後通過對匹配行'ListView's子視圖搜索,只是無效該行。但是,我認爲,'ListView'已經足夠聰明,只刷新屏幕上當前可見的看法,所以它可能不值得費心。 – Femi 2011-05-21 17:26:17

+0

這不適合我。我需要調用'myViewList.requestLayout'嗎?也許這是因爲'myAdapter.getItem'是空的? – 2013-06-30 12:01:02