2011-01-28 63 views
1

我創建了一個包含兩個編輯框的佈局。在啓動我的應用程序之後,我在兩個編輯框中輸入了一些文本,然後按下7和9按鈕來旋轉仿真器屏幕,並且我輸入的文本仍然保留。但是我從文檔中看到,在屏幕方向改變時,如果我不保存狀態,活動將重新啓動並且數據將消失。當我旋轉模擬器屏幕時,活動不會丟失狀態

我做錯了什麼改變屏幕的方向?我歡迎任何建議,因爲我是Android新手。

回答

2

只要你給的EditText一個唯一的ID,Android是足夠聰明保留文本你

報價從Mark Murphyhere

Android將自動處理的EditText的 內容上如果您使用所有默認設置 並且擁有所有ID爲唯一的窗口小部件,則方向 會發生變化。

Source

1

您可以設置活動的行爲,按手機的配置, onConfigurationChanged(配置NEWCONFIG) 是聽者,通過它可以設置手機的行爲。 http://developer.android.com/reference/android/app/Activity.html#onConfigurationChanged(android.content.res.Configuration) 有關更多詳細信息...

+0

這並沒有真正回答這個問題。他們問爲什麼用戶數據保存並重新加載時,它沒有明確保存在代碼中。 – 2011-01-28 13:26:10

0

當屏幕方向更改時(通常)重新創建活動。但是,在舊視圖被銷燬之前,將調用onSaveInstanceState方法,並在創建新視圖之後調用onRestoreInstanceState方法。這允許編輯框保存其舊內容,並在新活動創建後重新加載它。

如果您不希望重新創建活動,請使用onConfigurationChanged偵聽器和android:configChanges屬性。

+0

感謝您的答案,但我沒有明確地在onSaveInstaceState中保存我的活動狀態。系統會自動保存..? – newbie 2011-01-28 13:36:34