【问题标题】:Progress Dialog not showing in webview进度对话框未在 webview 中显示
【发布时间】:2016-06-24 13:13:44
【问题描述】:

我的 android 应用程序中有一个 webview,它从本地文件夹呈现 html 页面,现在我想在从一个 html 页面导航到另一个 html 页面时显示进度对话框,但我正在使用的进度对话框没有出现。这是我的代码 sn-p

  @JavascriptInterface
    public void save(String respString, boolean ifEndNode) throws JSONException {
        ProgressDialog progDialog = null;
        try {

            if(ifEndNode){
            //start loader
                progDialog = new ProgressDialog(webView.getContext());
                progDialog.setMessage("Saving survey, Please DON'T close the Application!! ");
                progDialog.setCanceledOnTouchOutside(false);
                progDialog.setCancelable(false);
                progDialog.show();
        }

       //some code here
      //...
      }
       catch (Exception e)
           {
            Logger.e(context,"exception", "jsonObjectexception");
           }
        finally {
            if(progDialog != null && progDialog.isShowing())
                progDialog.dismiss();
        }

谁能提出问题可能是什么?

【问题讨论】:

    标签: android webview progressdialog


    【解决方案1】:

    您可以通过这种方式将WebViewProgressDialog 一起使用。这是一个不错且简单的方法。

     private WebView webView;
     ProgressDialog prDialog;
    
         @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.page_news);
                setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
    
                webView = (WebView) findViewById(R.id.wv_news);
                webView.setWebViewClient(new MyWebViewClient());
    
                String url = "http://google.com/";
                webView.getSettings().setJavaScriptEnabled(true);
                webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
                webView.loadUrl(url);
    
    
            }
    
     private class MyWebViewClient extends WebViewClient {
    
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
    
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                prDialog = new ProgressDialog(NewsActivity.this);
                prDialog.setMessage("Please wait ...");
                prDialog.show();
            }
    
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                if(prDialog!=null){
                    prDialog.dismiss();
                }
            }
        }
    

    【讨论】:

    • 我已经在使用它来加载第一页,但现在我想在 html 页面之间导航时显示进度条,这些页面由于与它们关联的 javascript 代码中的路由而发生变化。并不是每次页面更改时都会启动 webview
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    相关资源
    最近更新 更多