在Android模擬器中觀察我的應用程序行爲,發現EditText內容在更改屏幕方向(Ctrl + F11)後保留。但是TextView的內容被重置爲其初始值,並且不保存程序設置的最新信息。這是行爲的定義嗎?我能做些什麼來保存這些內容?更改屏幕方向後,TextView內容丟失
9
A
回答
11
使用此屬性在您的TextViewandroid:freezesText="true"
。
3
當方向發生變化時,Android會重新加載Activity,從而破壞大多數信息,如TextView的變化。您將需要覆蓋onSaveInstanceState()
,這將在屏幕方向更改發生之前運行。然後,您將在Bundle
中訪問它,並將其傳遞到onCreate
。您還應該參考此處瞭解Activity生命週期。
11
可以使用savedInstanceBundle
通過重寫你的活動內的兩個方法,類似於下面,以保持數據的保持:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// Save state to the savedInstanceState
savedInstanceState.putString("MyString", textview.getText());
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// Restore state from savedInstanceState
String myString = savedInstanceState.getString("MyString");
textview.setText(myString);
}
添加您的項目到Bundle
在onSaveInstanceState
,並在onRestoreInstanceState
在讀回。這與在創建活動時通過意圖傳遞值的方式類似。
+0
爲我工作!謝謝。 –
相關問題
- 1. TextView內容丟失在屏幕鎖
- 2. Android - 更改屏幕方向
- 3. Qt屏幕方向更改
- 4. ANDROID屏幕方向更改
- 5. 屏幕方向更改
- 6. 當屏幕方向改變時,整數值會丟失?
- 7. android-屏幕方向改變時聽衆丟失
- 8. Android進度條在屏幕方向更改後不更新
- 9. 在屏幕方向更改後從對話框中更新ListView
- 10. YouTubePlayerFragment黑色方向更改屏幕
- 11. 屏幕方向更改通知
- 12. 屏幕方向隨setRetainInstance更改(true)
- 13. 更改Android主屏幕方向?
- 14. 如何處理屏幕方向更改
- 15. AutoCompleteTextView處理屏幕方向更改
- 16. 黑莓屏幕方向更改
- 17. Android:onRetainNonConfigurationInstance未調用屏幕方向更改
- 18. 更改屏幕方向問題:onCreate
- 19. 屏幕方向更改的意圖
- 20. Android NullPointerException在屏幕方向更改
- 21. Android - 更改模擬器屏幕方向
- 22. 一個更改屏幕顯示方向
- 23. 運行期間更改屏幕方向
- 24. 節點離開屏幕後丟失fps
- 25. 登錄屏幕顯示progressdialog並允許屏幕方向更改
- 26. 當點擊屏幕時更改TextView值
- 27. 內容比屏幕更寬
- 28. 當視圖滾動屏幕時,UITextField內容會丟失
- 29. ListView內容在分片更改後丟失
- 30. Android更改textview的內容
這似乎還不夠。你還有什麼補充? – 2014-01-30 21:50:01
@dpk它爲我工作;沒有其他東西可以添加。 – DBedrenko