我只是试图在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
。任何想法该怎么办?