Java 自定义警报对话框不会关闭

Java 自定义警报对话框不会关闭,java,android,android-alertdialog,Java,Android,Android Alertdialog,我正在创建一个自定义的警报对话框,以显示按钮单击事件侦听器上的加载。警报对话框show()函数工作正常,但dismise()函数不工作 public AlertDialog LoadDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(activity); LayoutInflater inflater = activity.getLayoutInflater(); b

我正在创建一个自定义的
警报对话框
,以显示按钮单击事件侦听器上的加载。警报对话框
show()
函数工作正常,但
dismise()
函数不工作

 public AlertDialog LoadDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(activity);

        LayoutInflater inflater = activity.getLayoutInflater();
        builder.setView(inflater.inflate(R.layout.dialog_show_loading, null));
        builder.setCancelable(true);

        dialog = builder.create();

        if (dialog != null)
            dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

        return dialog;
    }
要显示加载按钮,请单击不同的类,我只需调用:

new LoadingDialog(context).LoadDialog().show(); //works fine
我呼吁:

new LoadingDialog(context).LoadDialog().dismiss(); // does not work

您应该将返回的对话框存储到一个变量中,否则您所做的只是创建一个新的
AlertDialog
实例并调用
show()
,然后再调用另一个新实例并调用
dislose()
(因此该实例从未出现):

然后你可以打电话:

dialog.show();


您应该将返回的对话框存储到一个变量中,否则您所做的只是创建一个新的
AlertDialog
实例并调用
show()
,然后再调用另一个新实例并调用
dislose()
(因此该实例从未出现):

然后你可以打电话:

dialog.show();


没有关闭函数AlertDialog.Builder类。 而是使用

AlertDialog dialog= new AlertDialog.Builder(this).create();
打电话

dialog.dismiss();

没有关闭函数AlertDialog.Builder类。 而是使用

AlertDialog dialog= new AlertDialog.Builder(this).create();
打电话

dialog.dismiss();

当然,您是在一个不同的实例上调用
discouse
,而不是在第一次调用
show
时创建的实例,因为
LoadingDialog
方法会在每次调用时创建一个新实例


您需要存储由
show
创建的实例,并在该实例上调用
disclose

当然,您调用
disclose
的实例与第一次调用
show
创建的实例不同,因为
加载对话框
方法在每次调用时都会创建一个新实例


您需要存储由
show
创建的实例,并对该实例调用
disease

您正在执行
新建加载对话框(上下文).LoadDialog().disease();//不起作用
这将创建一个新的对话框引用,并尝试取消它,而不是使用以前创建的相同对话框

您需要将创建的对话与此对话一起存储-

newloadingdialog(context.LoadDialog().show()//工作正常


然后对存储的变量使用
.disease
,您正在执行的
新建加载对话框(上下文).LoadDialog().disease();//不起作用
这将创建一个新的对话框引用,并尝试取消它,而不是使用以前创建的相同对话框

您需要将创建的对话与此对话一起存储-

newloadingdialog(context.LoadDialog().show()//工作正常

然后对存储的变量使用
。discouse