基本上,我有一個TextView
和兩個EditText
意見在一個活動。從那個活動開始一個不同的活動。如果我按下設備上的硬件返回按鈕(結束第二個活動),視圖的狀態與以前相同,這很好。但是,在按下第二個活動的操作欄上的後退按鈕後,視圖會失去先前的狀態。Android不會自動保存查看狀態
根據文檔,如果您爲視圖(EditText,TextView等小部件)提供了一個ID,android會自動保存它們的狀態。
例如,EditText小部件保存用戶輸入的任何文本,CheckBox小部件會保存是否選中。唯一需要的工作是爲每個要保存其狀態的窗口小部件提供一個唯一的ID(帶有android:id屬性)。如果一個小部件沒有ID,那麼系統不能保存它的狀態。
我有一個唯一的ID爲每個視圖需要其狀態保存。我也曾嘗試明確使用XML中的android:saveEnabled="true"
和textView.setSaveEnabled(true);
無濟於事。
我試過執行onSaveInstanceState
和onRestoreInstanceState
,並且爲這兩者調用super
第一件事。按預期調用onSaveInstanceState
,但從不調用onRestoreInstanceState
。另外,savedInstanceState
傳遞給onCreate
始終是null
。
在清單中,我試過android:alwaysRetainTaskState="true"
和android:stateNotNeeded="false"
沒有運氣。
我可以發佈代碼,但我不確定哪些代碼是相關的,因爲系統似乎沒有按照它應該做的。什麼可能導致視圖狀態不被android自動保存?任何幫助表示讚賞,如果需要,我可以發佈特定的代碼。
旁註:我使用AppCompat,如果它有任何區別。
您希望保存的狀態是什麼?例如,「TextView」的文本將不會自動保存。 –
你可能想看看這個問題:https://stackoverflow.com/questions/15569790/android-onsaveinstancestate-in-back-button –
@RicardoLage'例如,EditText小部件保存用戶輸入的任何文本引用文檔。在我的情況EditText不是自動保存它的狀態,我甚至無法使用'onSaveInstanceState'等手動保存它。 –