点击Webview加载的Android进度对话框 - 空白屏幕

问题描述:

我试图在加载Webview中的内容时显示progressDialog。完成后,progressDialog将被解除。点击Webview加载的Android进度对话框 - 空白屏幕

private ProgressDialog progressDialog; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    webView = (WebView) findViewById(R.id.webView); 
    webView.setWebViewClient(new WebViewClient(){ 

     @Override 
     public void onLoadResource (WebView view, String url) { 
      //show progress bar 
      if (progressDialog == null) { 
       progressDialog = new ProgressDialog(activity); 
       progressDialog.setMessage("Loading please wait..."); 
       progressDialog.show(); 
      } 
     } 

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

    }); 
} 

我有2个测试设备Android 2.3.6和Android 4.0。在Android 2.3.6中,完全没有问题。对于Android 4.0平板电脑,在显示进度对话框的同时,点击它将隐藏或移除progressDialog,并使屏幕变为空白。

我的progressDialog有什么问题?

感谢

试试这个为网页视图客户

webView.setWebViewClient(new WebViewClient(){ 

      @Override 
      public void onLoadResource (WebView view, String url) { 
       //show progress bar 
       if (progressDialog == null) { 
        progressDialog = new ProgressDialog(MainActivity.this); 
        progressDialog.setMessage("Loading please wait..."); 
        progressDialog.show(); 
        progressDialog.setCanceledOnTouchOutside(false); 
        progressDialog.setCancelable(false); 
       } 
      } 

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

     }); 

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.main); 

     WebView webview = (WebView) findViewById(R.id.webView1); 
     webview.loadUrl("http://google.com"); 
     final ProgressDialog pd = ProgressDialog.show(this, "please wait", "Loading..."); 
     webview.getSettings().setBuiltInZoomControls(true); 
     webview.setWebViewClient(new WebViewClient() { 
        public boolean shouldOverrideUrlLoading(WebView view, String url) {    
         view.loadUrl(url); 
         return true; 
        } 


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

     }); 
    }