2011-03-16 132 views

回答

3

當您旋轉設備時,您的活動將重新啓動。您可以在清單中添加以下內容到應用部分停止此:

android:configChanges="orientation|keyboardHidden" 
+0

如果我的活動轉到後臺一些(例如,通過點擊回家)並被殺死由操作系統編輯?我想在用戶返回時保持顯示的對話框。 – 2011-03-16 20:12:57

+2

您應該使用應用程序生命週期的各種函數(onPause,onDestroy等)來設置布爾值,並且在調用onReturn等時檢查此布爾值並重新啓動對話框。 – Nanne 2011-03-16 20:13:58

+0

這是我想到的解決方案,但我不太喜歡它。我認爲Android有更好的方式來處理它。 – 2011-03-16 20:17:27

3

弗拉維奧,

您可以通過添加在你的AndroidManifest.xml以下防止自己的活動從方位的變化正在重建:

<activity android:configChanges="keyboardHidden|orientation" android:name="YourActivity"/>

然後,你需要重寫下面的方法在你的代碼:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
} 
0

Flavio:我無法用方向改變的alertDialogs或自定義對話框重新創建有問題的行爲。你使用onCreateDialog和showDialog(int id)?根據文檔「如果你使用showDialog,對話框會自動保存和恢復,這是我的經驗

它甚至可以創建一個帶有editText小部件的XML佈局,膨脹佈局和狀態EDITTEXT將被自動地保存在方向變化。

AlertDialog.Builder builder= new AlertDialog.Builder(this); 
LayoutInflater inflater= getLayoutInflater(); 
final View myView= inflater.inflate(R.layout.alert_dialog_text_entry, null); 
builder.setTitle("About"); 
builder.setMessage(alertMessage+"Version: "+versionName); 
builder.setView(myView); 
AlertDialog alert= builder.create(); 

我有代碼herehere與屏幕捕獲,演示alertDialog對方向變化的持久性和自定義對話框

相關問題