2011-04-07 62 views
0

我试过一切,我知道如何去杀死它。我想要它做的是加载网页,然后杀死ProgressDialog。怎么做?。我如何杀死它?

package com.calebfultz.package; 

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.View.OnKeyListener; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Button; 
import android.widget.EditText; 

public class Lists extends Activity { 
    private WebView webView; 


    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.web); 
     ProgressDialog pd = ProgressDialog.show(Lists.this, "", 
       "Loading. Please wait...", true); 
     // Create reference to UI elements 
     webView = (WebView) findViewById(R.id.web_engine); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.loadUrl("http://cfultz.tumblr.com"); 


     // workaround so that the default browser doesn't take over 
     webView.setWebViewClient(new MyWebViewClient() 

     ); 

    } 


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

回答

2

你可能想使你的ProgressDialog变量作为列表类的成员变量,并在你的shouldOverrideUrlLoading方法,添加行

pd.dismiss(); 
+0

谢谢。我试过了,不幸的是,它只是立即杀死进度对话框,而不是等待页面加载。 – 2011-04-07 02:04:32

1

我想你可以覆盖MyWebViewClient的onPageFinished功能:你可以在这个函数中关闭ProgressDialog。或者您可以重写MyWebChromeClient中的onProgressChanged(扩展WebChromeClient):当进度为100时,您可以关闭ProgressDialog。

0

请参阅此代码:

// the init state of progress dialog 
mProgress = ProgressDialog.show(this, "Loading", "Please wait for a moment...");    
// add a WebViewClient for WebView, which actually handles loading data from web 
       mWebView.setWebViewClient(new WebViewClient() { 
        // load url 
       public boolean shouldOverrideUrlLoading(WebView view, String url) { 
         view.loadUrl(url); 
        return true; 
        } 

        // when finish loading page 
        public void onPageFinished(WebView view, String url) { 
         if(mProgress.isShowing()) { 
          mProgress.dismiss(); 
        } 
        } 
       }); 

它是为我工作的罚款.........享受。

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

     //start loading animation 
      //loading is a ProgressBar type 
     this.loading.setVisibility(0); 
     view.setWebChromeClient(new WebChromeClient() { 
      public void onProgressChanged(WebView view, int progress) { 
       if(progress >= 100) { 
        this.loading.setVisibility(8); 
       } 
      } 
     }); 
2
public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     // Show your progress dialog here 

      prDialog = ProgressDialog.show(this, "", "Loading, please wait...", true); 

     super.onPageStarted(view, url, favicon); 

    } 

public void onPageFinished(WebView view, String url) { 

      //Finish your progress dialog here 


     if (prDialog.isShowing() || prDialog != null) { 
      prDialog.dismiss(); 
     } 

     super.onPageFinished(view, url); 

    }