Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 反压对话框片段_Android_Android Dialogfragment_Customdialog - Fatal编程技术网

Android 反压对话框片段

Android 反压对话框片段,android,android-dialogfragment,customdialog,Android,Android Dialogfragment,Customdialog,我有3个自定义对话框(DialogFragment)。所有这些都不可取消,因为用户无法关闭它们是必需的。第一个对话框启动第二个对话框,第二个对话框启动第三个对话框。现在我想返回到上一个对话框,如果我正在使用backclick。目前我有两个选择,但都不可行,这很好: 我从一个对话框开始创建一个新的对话框,但从不取消该对话框。->因此,在下一个对话框的背景中,始终是上一个对话框的视图 如果我要启动下一个对话框,我会调用Disclease,但他不会返回到上一个对话框,而是关闭该对话框 我能做什么,

我有3个自定义对话框(DialogFragment)。所有这些都不可取消,因为用户无法关闭它们是必需的。第一个对话框启动第二个对话框,第二个对话框启动第三个对话框。现在我想返回到上一个对话框,如果我正在使用backclick。目前我有两个选择,但都不可行,这很好:

  • 我从一个对话框开始创建一个新的对话框,但从不取消该对话框。->因此,在下一个对话框的背景中,始终是上一个对话框的视图

  • 如果我要启动下一个对话框,我会调用Disclease,但他不会返回到上一个对话框,而是关闭该对话框

我能做什么,启动新对话框,使第一个对话框不可见,但如果我单击“上一步”,该对话框将再次可见


非常感谢您的帮助:)

当您从第二个对话框转到第三个对话框时,可以关闭第二个对话框,这样您就不会在第三个对话框中看到它

稍后,如果您需要返回到第二个对话框,您可以在关闭第三个对话框之前重新启动它,就像从第一个对话框转到第二个对话框时启动它一样

要覆盖对话框的onBackPressed,您需要执行以下操作:

dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
{
    @Override
    public void onCancel(DialogInterface dialog)
    {
        // OVERRIDE CODE
    }
});
所以工作流程是这样的

  • 第一个对话框->开始第二个对话框
  • firstDialog.discover
  • 第二个对话框->开始第三个对话框
  • 第二个对话框
  • 如果你需要回去,你可以:

  • 第三个对话框->开始第二个对话框
  • 第三条辞退
  • 依此类推,直到回到第一个对话框


    我希望这对您有意义,如果没有,请给我们一些代码,以便我们可以帮助您了解与您的项目有关的更多详细信息:)

    当您从第二个对话框前进到第三个对话框时,您可以关闭第二个对话框,这样您就不会在第三个对话框中看到它

    稍后,如果您需要返回到第二个对话框,您可以在关闭第三个对话框之前重新启动它,就像从第一个对话框转到第二个对话框时启动它一样

    要覆盖对话框的onBackPressed,您需要执行以下操作:

    dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
    {
        @Override
        public void onCancel(DialogInterface dialog)
        {
            // OVERRIDE CODE
        }
    });
    
    所以工作流程是这样的

  • 第一个对话框->开始第二个对话框
  • firstDialog.discover
  • 第二个对话框->开始第三个对话框
  • 第二个对话框
  • 如果你需要回去,你可以:

  • 第三个对话框->开始第二个对话框
  • 第三条辞退
  • 依此类推,直到回到第一个对话框

    我希望这对您有意义,如果没有,请给我们一些代码,以便我们可以帮助您了解与您的项目相关的更多详细信息:)