返回上一个DialogFragment实例

时间:2016-09-14 13:33:06

标签: android dialog android-dialogfragment

我正在使用对话框对应用进行编码。我读到嵌套对话框是不明智的,所以我设置了一个接口来返回< NumberPickers >中所选的值strong> AlertDialog 返回到首先调用 DialogFragment 的活动。

活动然后调用另一个 DialogFragment ,其对话框让用户有机会确认他在第一个对话框中选择的内容< / strong>即可。如果他确认,那么意图会将他带到下一个活动,但如果没有,我希望他能够返回到之前的实例第一个对话框并进行必要的更改。

我尝试从第一个对话框上的肯定按钮实现的代码中删除命令dialog.dismiss(),但是当我离开时无效第二个对话框第一个对话框消失了。

然后我尝试了#34; pop&#34;带有 FragmentManager backstack ,希望对话框的前一个实例重新出现。我错了。

builder.setNegativeButton(R.string.reset_duration, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int whichButton) {
               //return to the previous instance of SDDialogFragment 
                int count = getFragmentManager().getBackStackEntryCount();
                if (count != 0) {
                    getFragmentManager().popBackStack();
                }

我认为我的错误有两点:

a)我对对话如何保持活跃状态​​没有真实的理解。

b)我将片段的实例与对话框的实例混淆。

有人请告诉我是否可以做我想做的事情,或者,我是否应该考虑通过使用捆绑转移价值并忘记返回之前的实例?感谢:)

1 个答案:

答案 0 :(得分:0)

对话框无法保持活动状态,但您可以在onDismiss()中恢复对话框。

试试这个: make Your Activity实现onDismissListener 在显示您的对话框之前设置一个解雇监听器yourDialog.setOnDismissListener(this);

然后您将在onDismiss(DialogInterface对话框)

中返回您的对话框