Java 如何检查警报是否可见

Java 如何检查警报是否可见,java,android,alert,android-alertdialog,Java,Android,Alert,Android Alertdialog,如何检查我的警报是否已显示在屏幕上 AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.show(); 我可以通过在代码中添加一个要设置和重置的标志来维护状态,但如果已经有一个方法可以重复使用?是,您可以使用isShowing()检查它;方法 它也被记录在 但在您的情况下,您需要首先捕获由AlertDialog.Builder生成的AlertDialog。 所以你的代码应该是这样的 AlertDialog al

如何检查我的警报是否已显示在屏幕上

 AlertDialog.Builder alert = new AlertDialog.Builder(this);

 alert.show();

我可以通过在代码中添加一个要设置和重置的标志来维护状态,但如果已经有一个方法可以重复使用?

是,您可以使用isShowing()检查它;方法 它也被记录在

但在您的情况下,您需要首先捕获由AlertDialog.Builder生成的AlertDialog。
所以你的代码应该是这样的

AlertDialog alertDialog;

function showDialog() {
    if(alertDialog == null) { 
        //Initial Creation will always show 
        //or you can just use create() if you don't want to show it at initial creation
        AlertDialog.Builder alert = new AlertDialog.Builder(this);
        AlertDialog alertDialog = alert.show();
    else {
        if(alertDialog.isShowing()) {
             alertDialog.hide();
        } else {
             alertDialog.show();
        }
    }
}
AlertDialog.Builder类上没有isShowing()方法。不过Dialog类上有一个

AlertDialog.Builder用于创建AlertDialog。一旦有了AlertDialog的实例,就可以通过对其调用isShowing()来确定它是否仍在显示

使用以下命令:

AlertDialog alertDialog = alert.create();

//to check if its being shown
if(!alertDialog.isShowing()){
    //do something
    alertDialog.show();
}
如果当前显示该警报对话框,它将返回
true
。因此,在您的情况下,检查它是否返回
false
,然后显示它


希望对您有所帮助。

您可以使用对话框的显示方法,或者您可以在创建警报对话框时保持标记为0,并在显示后将其设置为1

请讲清楚。是否要检查当前是否显示警报?是的,确切地说是@MysticMagic
alert.isShowing()
method。但我想根据其可视性决定是否显示天气,是否可以在调用show()之前执行此操作?
AlertDialog alertDialog = alert.create();

//to check if its being shown
if(!alertDialog.isShowing()){
    //do something
    alertDialog.show();
}