为什么进度对话框在某些页面上没有消失?

时间:2015-11-20 17:03:50

标签: java android

这是我的主要活动,当我加载一些页面时,进度对话框不会在页面上消失......问题出在哪里? 如果你想尝试问题是与页面" accedi"或者在支付订单时

private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WebView webView = new WebView(this);


    webView.setClickable(true);
    webView.setFocusableInTouchMode(true);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.loadUrl("http://www.alldrink.it");
    WebClientClass webViewClient = new WebClientClass();
    webView.setWebViewClient(webViewClient);
    WebChromeClient webChromeClient=new WebChromeClient();
    webView.setWebChromeClient(webChromeClient);
    setContentView(webView);
    webView.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
                WebView webView = (WebView) v;

                switch (keyCode) {
                    case KeyEvent.KEYCODE_BACK:
                        if (webView.canGoBack()) {
                            webView.goBack();
                            return true;
                        }
                        break;
                }
            }

            return false;
        }
    });


}



public class WebClientClass extends WebViewClient {
    ProgressDialog pd = null;

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        pd = new ProgressDialog(MainActivity.this);
        pd.setTitle("Attendere");
        pd.setMessage("Caricamento in corso..");
        pd.show();
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        if (pd.isShowing()) {
            pd.dismiss();

        }
    }


}




public class WebChromeClass extends WebChromeClient{

}

}

1 个答案:

答案 0 :(得分:0)

dismiss()函数正在运行,但你的onPageStarted()已经运行了两次,再次重新创建对话框,看起来它永远不会消失。尝试将onPageStarted更改为:

@Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);

        if(!pd.isShowing())
        {
            pd.setTitle("Attendere");
            pd.setMessage("Caricamento in corso..");
            pd.show();
        }
    }