alertdialog.dismiss()出错

时间:2011-04-27 14:10:06

标签: android alertdialog

我想检查一个条件,然后如果它是假的我想解雇之前显示的AlertDialog。 但是,我正面临这个错误:

方法dismiss()未定义类型AlertDialog.Builder

代码:

ad.show();
        if (call.isInCall()== false)
        {
            ad.dismiss();
        }

有什么问题?

编辑:问题:

AlertDialog.Builder ad = new AlertDialog.Builder(context);
        d = ad.create();
        ad.setTitle("Appel en cours...");
        ad.setMessage("Voulez vous répondre à cet appel?");
        //ad.create();
        ad.setPositiveButton("Oui", 
.....

if(call.isInCall() == false && d != null && d.isShowing()){
           d.dismiss();
        }

=>强制关闭。 非常感谢你的帮助。

1 个答案:

答案 0 :(得分:4)

您必须先使用构建器来创建对话框,然后才能执行此类操作。

//Let's change this so you have a field declared in your class.
AlertDialog d;

//Somewhere, maybe in onCreate() you're using the builder to instantiate the dialog.

//insert all builder creation and methods here first... then call
d = ad.create();

//somewhere else in your code you've shown the dialog with
d.show();

//again, some where else you're checking if the dialog is displaying and dismissing it
if(call.isInCall() == false && d != null && d.isShowing()){
   d.dismiss();
}

当然,您必须小心使用AlertDialog上的作用域,具体取决于您调用此代码的位置。这也不是处理Dialogs的推荐方法。你应该研究使用onCreateDialog()onPrepareDialog()Activity回调:http://developer.android.com/guide/topics/ui/dialogs.html