从其他功能中解除alertDialog

时间:2017-12-29 16:49:24

标签: android alertdialog android-alertdialog

如何从创建它的函数外部解除alertDialog?

如果显示警报,那么我希望在应用关闭然后恢复时将其解除。但是,我不确定如何从另一个侦听器(onResume)获取对话框。

webView.setWebChromeClient(new WebChromeClient() {
    ...

    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
        // ... show alert on error
        new AlertDialog.Builder(getContext())
                .setMessage(alertMessage)
                .setTitle(alertTitle)
                .setPositiveButton("OK",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss();
                            }
                        })
                .show();
    }

    public void onResume(){
         super.onResume();
         // Want to dismiss alert dialog here
     }

 }

2 个答案:

答案 0 :(得分:1)

将AlertDialog保存在私有变量中。所以你以后可以使用它并调用dialog.dismiss()。

private AlertDialog dialog;

在你的函数onReceivedError:

dialog = new AlertDialog.Builder.....

答案 1 :(得分:0)

全局声明AlertDialog对象

private AlertDialog dialog;

并在此功能中使用您的代码

public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
    // ... show alert on error
   dialog = new AlertDialog.Builder(getContext())
            .setMessage(alertMessage)
            .setTitle(alertTitle)
            .setPositiveButton("OK",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    })
            .show();}

在函数外部,您可以使用对话框

对象将其关闭
dialog.dismiss();