java - 带进度对话框的 webview android

标签 java android webview progressdialog

我正在尝试为带有进度条的Android制作一个WebView应用程序,我尝试了很多这里的例子,但没有一个起作用..我的问题是,在框架页面或带有Facebook喜欢或评论插件的页面上,进度对话框永远不会停止了..这是我的代码..请测试它并告诉我出了什么问题。

private WebView webview;
private ProgressDialog progressDialog;
boolean loadingFinished = true;
boolean redirect = false;
int nr = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    webview = (WebView) findViewById(R.string.webview);

    final Activity activity = this;

    webview.getSettings().setJavaScriptEnabled(true);

    webview.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            if (!loadingFinished) {
                redirect = true;
             }

            loadingFinished = false;
            webview.loadUrl(url);

            return true;

        }

        public void onLoadResource(WebView view, String url) {
            if (progressDialog == null) {
                progressDialog = new ProgressDialog(activity);
                progressDialog.setTitle("PitziWorld");
                progressDialog.setMessage(progressDialog.toString());
                progressDialog.setCancelable(isFinishing());
                progressDialog.show();

            }
            loadingFinished = false;
        }
        public void onPageFinished(WebView view, String url) {

            if(!redirect){
                loadingFinished = true;
             }

             if(loadingFinished && !redirect){
                 if (progressDialog.isShowing() || progressDialog!=null) {
                     progressDialog.hide();
                     progressDialog = null;
                 }
             } else{
                redirect = false; 
             }




        }
    }); 
    webview.loadUrl("http://www.pitziworld.ro");

}
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        WebView webView = (WebView) findViewById(R.string.webview);
        //Verifica daca tasta apasata a fost back si daca exista istoric
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
            webView.goBack();
            return true;
        }
        // Daca nu a fost tasta back sau nu este istoric, returnam valoare buton

        `

最佳答案

这就是您正在寻找的!

         public void onPageStarted(WebView view, String url, Bitmap favicon) {
           mProgress.show();
       }

在每个页面加载进度条 就是这样!

关于java - 带进度对话框的 webview android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9403569/

相关文章:

android - 检索 Android 中其他应用播放的音乐/歌曲信息

swift - 如何隐藏移动键盘的上栏?

java - 枚举的值来自其名称

Java:为什么静态字段彼此都是 "independent"?

java - 如何在Java类中访问HTTP请求

Android 资源链接失败,错误 : attribute defaultNavHost (aka . ..) not found, ttribute navGraph (aka...) not found

Android 识别资源 ID 是可绘制的还是字符串

android - 我的应用程序使用 Webview 时总是崩溃?

android - Webview 在选择框或任何对话框上崩溃

java - 如何使用 Autowiring 在 spring 中从属性文件中检索键的值