2012-07-19 64 views
1

我在加载webview对话框时遇到了问题。我的对话是dismis但我必须再次等待一些秒钟,显示完整的WebView ..我想的是,如果加载对话框是dismis的WebView做..这是我的WebView代码:在android中加载对话框

progressBar = new ProgressDialog(this); 
webView = (WebView) findViewById(R.id.webView1); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 

final AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 
progressBar = ProgressDialog.show(WebViewFacebook.this, "Loading", "Please wait for a moment..."); 

webView.setWebViewClient(new WebViewClient() { 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 

    public void onPageFinished(WebView view, String url) { 
     if (progressBar.isShowing()) { 
      progressBar.dismiss(); //--> this progressbar always dismis although mw webview not done >< 
     } 
    } 

    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
     alertDialog.setTitle("Error"); 
     alertDialog.setMessage(description); 
     alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
       //return; 
       finish(); 
      } 
     }); 
     alertDialog.show(); 
    } 
}); 
webView.loadUrl(strurl); 
+0

我的问题是loadingdialog dismis虽然网页流量不这样做,所以我必须等待一段第二,看网页...... – 2012-07-19 11:14:53

回答

1

见下代码

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

    view = (WebView) findViewById(R.id.WebView01); 
    view.setBackgroundColor(0); // set the background transparent 

    progressDialog = ProgressDialog.show(view.getContext(), "Loading...", "Loading..."); 
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER ); 

    view.setWebChromeClient(new MyWebChromeClient()); 
    view.getSettings().setJavaScriptEnabled(true); 
    view.setWebViewClient(new MyWebViewClient()); 
    view.loadUrl("http://www.XXX.XXX"); 

} 

然后创建班组长

private class MyWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    { 
     view.loadUrl(url); 
     return true; 
    } 
} 


private class MyWebChromeClient extends WebChromeClient { 

    @Override 
    public void onProgressChanged(WebView view, int newProgress) { 
     if(progressDialog!=null){ 
      if (newProgress >=80) { 
       progressDialog.dismiss(); 
      } else { 
       progressDialog.setMessage(newProgress + " % loaded"); 
      } 
     } 
     super.onProgressChanged(view, newProgress); 
    } 
} 
+0

好吧,我会try..i将通知结果 – 2012-07-19 11:40:03

+0

仍然是相同的..我必须等待一些第二虽然我的对话是dismis buat webview未完成>< – 2012-07-19 11:46:47

+0

你可以做newProgress> = 80到100并尝试 – Nirali 2012-07-19 11:48:07