【问题标题】:How to know when is clicked outside the dialog box - Android如何知道何时在对话框外单击 - Android
【发布时间】:2020-04-07 12:53:01
【问题描述】:

我正在处理一个对话框,以及两个negativeButtonpositiveButton。不过,我想改变在框外按下时的行为。我已经检查过了,我发现的关于这个主题的所有问题都是关于在dialog.dimiss() 之外单击时隐藏AlertDialog,但这不是我的问题。我想知道是否有一个listener 允许我切换这种行为(想调用其他方法并删除其他变量)。

JAVA

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(m_activity);
    alertDialogBuilder.setTitle("Navigation");
    alertDialogBuilder.setMessage("Choose Mode");
    alertDialogBuilder.setNegativeButton("Navigation", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialoginterface, int i) {
            m_navigationManager.startNavigation(m_route);
            m_map.setTilt(60);
            startForegroundService();
        }

        ;
    });
    alertDialogBuilder.setPositiveButton("Simulation", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialoginterface, int i) {
            m_activity.findViewById(R.id.address_form).setVisibility(View.INVISIBLE);
            m_navigationManager.simulate(m_route, 30);//Simualtion speed is set to 45 m/s
            m_map.setTilt(60);
            startForegroundService();
        }
    });

    AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();

【问题讨论】:

标签: android dialog


【解决方案1】:

您可以添加DismissListener 例如:

alertDialogBuilder.setOnDismissListener(new DialogInterface.OnDismissListener() {
    @Override
    public void onDismiss(DialogInterface dialog) {

    }
});

当对话框因任何原因被关闭时(也当用户选择“肯定”或“否定按钮)时,将调用此回调!

【讨论】:

  • @也许他想在外面点击以调用其他方法,但阻止对话框关闭
  • 像魅力一样工作。我将在 8 分钟内将其设置为正确
  • 是的。但是 stackoverflow 不允许在发布后 10 分钟内将其设置为正确。你太快了:)
  • 哈!很高兴有帮助:)
猜你喜欢
  • 2012-01-08
  • 2020-09-26
  • 2023-02-16
  • 1970-01-01
  • 2020-07-27
  • 2020-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多