如何知道何时在对话框外单击 - Android
How to know when is clicked outside the dialog box - Android
我正在使用一个对话框,还有两个 negativeButton
和 positiveButton
。不过,我想改变按下框外时的行为。我已经检查过了,我发现的关于这个主题的所有问题都是关于在 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" 或“否定按钮”时)将调用此回调!
我正在使用一个对话框,还有两个 negativeButton
和 positiveButton
。不过,我想改变按下框外时的行为。我已经检查过了,我发现的关于这个主题的所有问题都是关于在 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) {
}
});