2012-01-19 27 views
3

列表是從通過網絡遠程Feed中提取的,所以我試圖 防止重新裝載通過另一個網頁列表視圖拉如何將ListView保存在onSaveInstanceState(Bundle outState)中,這樣我就可以在Android中恢復它?

基本上,我只希望應用程序保存所有工作,然後 當恢復本身用戶改變方向,而不是必須 另一個完整的回撥數據源。 和我必須在onSaveInstanceState方法中寫入。

我必須做的PLZ幫助我,讓我可以繼續? 在此先感謝。

回答

2

你不需要保存ListView,你只需要存儲你正在填充你的ListView的數據。 Here就是一個簡單的例子。另一個你可以有this one

+0

我有ArrayList > myList;當我嘗試這樣做,它給我一個錯誤保護的onSaveInstanceState無效(捆綁outState){ \t \t \t \t \t \t super.onSaveInstanceState(outState); \t \t \t \t outState.putStringArrayList(「key」,myList); \t} 那麼我現在可以做什麼? –

+0

你可以使用Serializable在這種情況下檢查這個http://stackoverflow.com/questions/8725699/how-to-get-hash-table-arraylist-to-other-intent –

+0

它工作正常,但他們是一個更多的問題那個。當我試圖改變從風景到人像的方向,反之亦然,它只需要肖像視圖,列表視圖中的所有對齊都會受到干擾。所以你能告訴我我能做什麼? –

0

你的列表視圖必須支持某種列表可能數組列表,集合等。你可以將該列表傳遞給android,並要求它在你的活動死亡並重生時存儲該對象。做到這一點的方法是使用onRetainNonConfigurationInstance。檢查android文檔。這非常簡單。

+0

你可以給我一個小樣本的代碼,也用於獲取該數據並在另一個方向顯示相同的列表。 –

+0

[此方法已被棄用。](http://developer.android.com/reference/android/app/Activity.html#onRetainNonConfigurationInstance()) –

+0

是的,已棄用。但是,如果您的目標是低於android 4.0,我們只有這個選項可用。 –

1

它非常簡單。
對於方向更改,即使在屏幕方向從縱向改變爲橫向之後,您也可以保留活動數據,反之亦然。

您需要爲橫向製作一個單獨的佈局xml,以保持所有元素與縱向佈局xml中的相同(視圖及其ID)不變。
將此xml放在應用程序的「res」文件夾中名爲「lauout-land」的文件夾中,並將其命名爲「layout」文件夾中對應文件的名稱。
因此,無論何時他們將是一個配置更改android將充氣此佈局xml而不是肖像模式,反之亦然。

Edditted科

此外,如果你想要的方向改變之前保存的東西(我relly不知道爲什麼你需要這個),你可以做到這一點
公共無效onConfigurationChanged(配置NEWCONFIG){
.....
.....
保存任何你想保存文本的任何編輯文本
任何arraylist
....
.....
super.onConfigurationChanged(newConfig);
....
現在將保存的數據設置到任何你想要的地方。
}

此外,如果您的列表正在重置aftre方向更改,那麼包含數據的數組必須仍然存在,如果您的活動未被終止。
再次爲您的列表設置適配器。
在此之後休息我的建議。

+0

我知道,但我想存儲活動的數據。所以當方向改變時,它將在該方向上顯示相同的數據。 –

+0

它將保留相同的數據,因爲活動的方向更改沒有數據丟失。 – akkilis

相關問題