如何知道何时在对话框外单击 - Android

How to know when is clicked outside the dialog box - Android

我正在使用一个对话框,还有两个 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();

您可以添加 DismissListener 例如:

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

    }
});

当对话框因任何原因关闭时(以及当用户选择 "positive" 或“否定按钮”时)将调用此回调!