我只是試圖在Android中保留一個對話框,我認爲這很簡單。但它不工作,因爲我認爲它會。我有一個名爲StartMonitoringDialogFragment
的Activity
簡單成員類別,它擴展DialogFragment
。在我的活動中,我展示它:Android DialogFragment在方向更改時未保留
StartMonitoringDialogFragment dialog = new StartMonitoringDialogFragment();
dialog.show(getFragmentManager(), getClass().getName() + "StartDialog");
但是,對話框不會出現在方向更改上。我注意到片段onCreateView在方向更改後正確調用,正在創建並正確返回其視圖(片段仍然設置的實例變量),但是沒有顯示任何內容。它不應該顯示嗎?我需要手動跟蹤嗎?
編輯 我試圖通過添加
Fragment dialog;
if(savedInstanceState != null && (dialog = getFragmentManager().findFragmentByTag(getClass().getName() + "StartDialog")) != null) {
((DialogFragment)dialog).show(getFragmentManager(), getClass().getName() + "StartDialog");
}
到我的活動onCreate(Bundle savedInstanceState)
方法來解決這個問題,它起初似乎工作,但我現在經常面臨的一個例外java.lang.IllegalStateException: Fragment already added
。任何想法該怎麼辦?