2010-10-12 52 views
1

我遇到了ListView中ListView與自定義ArrayAdapter ListView的問題。ListActivity/ListView的內容是「消失」

當ListActivity變爲隱藏(暫停,無論)時,ArrayAdpater中存在的數據似乎消失。旋轉工作正常,但我只是在onCreate()的ArrayAdapter中分配數組,而沒有其他地方。該數組存儲在一個全局靜態,所以數組本身應該沒問題。但ListView似乎是在Activity生命週期中的onCreate之後的某處放置數組。

我想數組應該重新分配onResume(),onStart()或onRestart()之一,但我正在尋找一個更具體的原因,因爲這種情況很少發生,從來沒有與我基於光標的適配器。

+0

@ user473677:請定義「似乎消失」。 – CommonsWare 2010-10-12 19:35:16

+0

當視圖變爲可見時,它是空白的(沒有列表項)。我從提示中猜測這是因爲ListActivity釋放它在onPause或onStop()中的適配器。所以我已經將數據初始化/ setListAdapter()移動到onResume(),很難測試,因爲我不知道如何強制onStop ... – Kenny 2010-11-09 00:11:19

回答

1

你的問題有點含糊,但我會提出一些要考慮的技巧。

請勿在onCreate方法中填充數據。應該使用onCreate()來定義視圖。使用onResume()加載數據,以便使用onPause()有效地清理和節省內存。

確保您的自定義ArrayAdapter正確處理getView,因爲這可能是其他問題的來源。

+0

此外,它聽起來像他在旋轉手機/屏幕。當屏幕旋轉時,當前的Activity被銷燬並重新創建。所以你的onCreate()方法會被再次調用。我認爲他將不得不向我們展示一些代碼。 – Andrew 2010-10-12 21:40:06