Home > Tricks & Tips > Load WebView with ProgressDialog

Load WebView with ProgressDialog


It’s very useful to determine the status while loading a web page. Here a sample to show ProgressDialog to track when WebVIew done with loading URL.

public class MainActivity extends Activity {

	WebView mWeb;
	ProgressDialog mProgress;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // no need to use title bar
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        // set webview as main content only
        mWeb = new WebView(this);
        setContentView(mWeb);
        // set Javascript
        WebSettings settings = mWeb.getSettings();
        settings.setJavaScriptEnabled(true);
        // 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
        mWeb.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();
        		}
        	}
        });
        // set url for webview to load
        mWeb.loadUrl("http://www.cnn.com");
    }
}

Hope it helps!

Cheers,
Pete Houston

About these ads
  1. xristina
    October 18, 2012 at 3:56 pm | #1

    Thanks!That was a really good way to load a web view!!!!

  2. Justin
    May 27, 2012 at 3:52 pm | #2

    This is great, but what about when a user clicks on a link inside webview. How do you show a ProgressDialog every time someone clicks on a link inside the web view? This only shows on the first load. I’m pulling my hair out trying to figure this out!

  3. Ferran
    February 6, 2012 at 3:42 pm | #4

    Thanks mate!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

%d bloggers like this: