android - 如何检查对话框是否打开?

标签 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();
}

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

最佳答案

您应该将此代码放入您希望支持此功能的每个 Activity 中。

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();
}

关于android - 如何检查对话框是否打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5660276/

相关文章:

android - Cordova平台添加android报错

java - 传递对象的自定义数组列表

java - 捕获 A4 大小的文档。 OpenCV 可以在 Android 中执行此操作吗?

android - ./distribute.sh -1 上的 Kivy Buildozer 权限被拒绝

java - Android 应用程序使用 AsyncTask 下载文件时出现内存泄漏

android - 仅将样式应用于特定的 TextView

android.util.AndroidRuntimeException : You cannot combine swipe dismissal and the action bar

java - Android 类型 new View.OnClickListener(){} 未定义方法 startActivity(Intent)

android - Cocos2d-x - Android - 某些图像在具有相同分辨率的某些设备上不显示

android - 在旧版本的 API 上更改 ContentObserver Onchange 上的 uri