首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查对话框是否打开?

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

Stack Overflow用户
提问于 2011-04-14 16:07:49
回答 3查看 22K关注 0票数 17

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

代码语言:javascript
复制
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个或更多的对话框。如何检查对话框是否打开?谢谢..。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-14 16:21:10

您应该将此代码放入您想要支持此功能的每个活动中。

代码语言:javascript
复制
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();
}
票数 36
EN

Stack Overflow用户

发布于 2011-04-14 16:15:19

重写您的方法以返回AlertDialog,将其分配给一个成员,并在调用此方法之前检查它是否为空或!isShowing()

您也可以改用onCreateDialog。在基类中为需要管理对话框的活动实现此方法,然后随心所欲地调用showDialog(int id)

票数 1
EN

Stack Overflow用户

发布于 2012-12-29 06:35:00

代码语言:javascript
复制
            AlertDialog alertDialog;
    alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle(title);
    alertDialog.setMessage(msg);        
    alertDialog.setButton(-3, "Text Parsed", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            dialog.dismiss();
        }
    });

    alertDialog.show();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5660276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档