取消android中的现有alertdialog

时间:2014-03-12 06:42:24

标签: android alertdialog android-alertdialog

您好我正在编写一个程序,每15分钟使用一个alarmmanager显示一个alertdialog。但是这样做时,alertdialogs被置于另一个上方。我曾经使用isshowing()但没有工作。这是我的代码

AlertDialog.Builder builder=new AlertDialog.Builder(this);
    builder.setTitle("Check new files  ");
    builder.setNegativeButton("ok", new DialogInterface.OnClickListener() {

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

AlertDialog  alert=builder.create();
    if(alert.isShowing()){
        alert.dismiss();
    }
    else{
        alert.show();
    }

3 个答案:

答案 0 :(得分:0)

每次创建新对象并检查它是否可见。但是在isShowing()

中新对象将始终返回false

如果你想使用isshowing(),那么使用那个警报dailog的旧对象

答案 1 :(得分:0)

您可以声明boolean isActive全球。将其初始化为false,如果创建了对话框,则将其设置为true。 现在你可以问:

if (isActive) {
    alert.dismiss(); 
} else { 
    alert.show(); 
}

答案 2 :(得分:0)

声明布尔isactive = false;全局并在添加警报时设置为true,并在删除警报时设置为false替换此代码

AlertDialog  alert=builder.create();
if(alert.isShowing()){
    alert.dismiss();
}
else{
    alert.show();

}

用这个

if(isactive){
    isactive = false;
    builder.dismiss();
}
else{
    AlertDialog  alert=builder.create();
    isactive = true;
    alert.show();
}