Wednesday, August 10, 2011

Android Tip: Enable a progress bar for a WebView

This is how you enable a progress bar when loading web pages using a WebView in Android:


final Activity activity = this;
     
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().requestFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.main);
     
       
        String url = "http://m.bing.com";

        WebView web = (WebView) findViewById(R.id.mainView);
             web.getSettings().setJavaScriptEnabled(true); 
             web.getSettings().setBuiltInZoomControls(true);
             web.getSettings().setUseWideViewPort(true);
              web.setWebChromeClient(new WebChromeClient() {
                  public void onProgressChanged(WebView view, int progress) {
                        activity.setProgress(progress * 100);
                  }
              });

             web.loadUrl(url);
       
    }

Note: requestFeature() must be call before any other content is added (call it right after super.onCreate).


No comments:

Post a Comment