我想检查一个条件,然后如果它是假的我想解雇之前显示的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();
}
=>强制关闭。 非常感谢你的帮助。
答案 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