您好我正在编写一个程序,每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();
}
答案 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();
}