[英]Device Orientation Destroy Activity
我的應用程序大部分都可以正常工作,但是按鈕和文本視圖的文本會根據某些狀態變量而變化。 當我更改設備的方向時,它將破壞並以新的方向重新創建活動。 我嘗試添加
android:configChanges="orientation"
到清單文件。 我還嘗試覆蓋onConfigurationChanges方法以“不執行任何操作”,但文本仍恢復為默認值。
我知道我可以將用戶鎖定在一個方向上,但是我寧願讓該應用程序在任何一個方向上都可以使用。
或者,是否可以確定用戶以哪個方向打開應用程序並將其鎖定在該方向,直到他們重新啟動應用程序?
編輯:
謝謝卡比爾,
android:configChanges="orientation|screenSize"
完美運作
對於API 12及以下版本:
android:configChanges="orientation"
如果您定位的是API 13或更高版本
android:configChanges="orientation|screenSize"
實際上,改變方向是通過銷毀和重新創建活動來進行的。 一些視圖能夠保存其狀態,另一些則不能。 TextView
不會保存其狀態(在本例中為文本),因為它傾向於顯示靜態文本。 如果要在配置更改期間保存TextView
的狀態,可以執行以下操作:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
/*
1st argument is key, 2nd is value to save
*/
outState.putString("savedText", myTextView.getText().toString());
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
/*
The argument is key to get saved string
*/
myTextView.setText(savedInstanceState.getString("savedText"));
}
這些onSaveInstanceState()
和onRestoreInstanceState()
是Activiy
的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.