簡體   English   中英

設備定向破壞活動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM