如何检查是否打开了一个对话框?

Jim*_*Jim 16 android

我有静态方法,我在其中创建一个对话框

public static void showDialog(Context context) {
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setTitle("Title");
    builder.setMessage("Message");
    builder.setPositiveButton("ok", new OnClickListener() {
            public void onClick(DialogInterface dialog, int arg1) {
                dialog.dismiss();
            }});
    builder.setCancelable(false);
    builder.create().show();
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,可能存在多次调用方法的情况,但我不想打开2个或更多对话框.如何检查是否打开了对话框?谢谢...

小智 32

您应该将此代码放在要支持此功能的每个活动中.

public AlertDialog myAlertDialog;

public void showDialog(Context context) {
        if( myAlertDialog != null && myAlertDialog.isShowing() ) return;

        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setTitle("Title");
        builder.setMessage("Message");
        builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int arg1) {
                    dialog.dismiss();
                }});
        builder.setCancelable(false);
        myAlertDialog = builder.create();
        myAlertDialog.show();
}
Run Code Online (Sandbox Code Playgroud)

  • if( myAlertDialog == null .... 为什么我们检查 null ?这里应该是 != null... 否? (2认同)