Skip to content Skip to sidebar Skip to footer

How To Set Progress Bar For Loading Activity With Data In Android

This is my first class doing Url loading . public class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, Str

Solution 1:

add this code to your code

ProgressDialogpd=newProgressDialog(detailedview .this);
                                       ^^^^^^^^^^^^
        pd.setMessage("Loading...");
        pd.show(); <-----

mWebView.setWebViewClient(newWebViewClient() {
^^^^^^^^    

@OverridepublicvoidonPageFinished(WebView view, String url) { <-----
     super.onPageFinished(view, url);
     pd.dismiss(); <-----
   }
});
-------------------------------------------------------------------------------


publicclassdetailedviewextendsActivity
{
    WebView mWebView;
    @OverridepublicvoidonCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.detailedview);
        ProgressDialogpd=newProgressDialog(detailedview .this);

        pd.setMessage("Loading...");
        pd.show(); 

       mWebView.setWebViewClient(newWebViewClient() {


@OverridepublicvoidonPageFinished(WebView view, String url) { 
     super.onPageFinished(view, url);
     pd.dismiss(); 
   }
});
        GetSetgs=newGetSet();

        Stringtitle= gs.getTitle();
        Stringdesc= gs.getDesc();

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setBuiltInZoomControls(true);
        mWebView.getSettings().setSupportZoom(true);
        mWebView.getSettings().setTextSize(TextSize.SMALLER);
        mWebView.loadDataWithBaseURL("", "<p  align=\"justify\"><b> " + title+"</p></b><p align=\"justify\"><br>"+ desc + "</p></br>", "text/html", "utf-8", "");
      //  mWebView.setWebViewClient(new HelloWebViewClient());
    }
}

Solution 2:

You can use below code

publicclassGrabextendsActivity {

WebView view;
privateProgressDialogprogressDialog=null;


@OverridepublicvoidonCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.grab);

    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(newMyWebChromeClient());
    view.getSettings().setJavaScriptEnabled(true);
    view.setWebViewClient(newMyWebViewClient());
    view.loadUrl("http://www.wepware.com/web/apps/jots.do");
}


privateclassMyWebViewClientextendsWebViewClient {
    @OverridepublicbooleanshouldOverrideUrlLoading(WebView view, String url)//override WebViewClient method to open url in activity
    {
        view.loadUrl(url);
        returntrue;
    }
}

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

Solution 3:

first make one class say it DownloadWebPageTask

put this in ur oncreate method

GetSet gs = new GetSet();

Stringtitle= gs.getTitle();
    Stringdesc= gs.getDesc();

    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setBuiltInZoomControls(true);
    mWebView.getSettings().setSupportZoom(true);
    mWebView.getSettings().setTextSize(TextSize.SMALLER);

now make an object of that class like this

DownloadWebPageTask task = new DownloadWebPageTask(); task.execute(); Note:**task.execute(); will call ur class "DownloadWebPageTask" u can start this from any line of code write now i have put this in onCreate Method

and here is ur class

privateclassDownloadWebPageTaskextendsAsyncTask<String, Void, String> {

     private final ProgressDialog dialog = newProgressDialog(Home.this);

      // can use UI thread hereprotectedvoidonPreExecute() {
         this.dialog.setMessage("Loading...");
         this.dialog.show();
      }
    @OverrideprotectedStringdoInBackground(String... urls) {
        String response = "";

      mWebView.loadDataWithBaseURL("", "<p  align=\"justify\"><b> " + title+"</p></b><p align=\"justify\"><br>"+ desc + "</p></br>", "text/html", "utf-8", "");

        return response;
    }

    @OverrideprotectedvoidonPostExecute(String result) {
         if (this.dialog.isShowing()) {
                this.dialog.dismiss();
           }

             mWebView.setWebViewClient(newHelloWebViewClient());
    }


}   

Note:**Whenever u use any progress bar than in on post excute method all background process are done till than ur progress bar will be displyed and as soon as data downloading is completed than onPostExcute method will be call.and data downloaded from external server will be stored in webview or u can do any thing with that. If u still find any query than tell me Best Of luck Aamirkhan I.

Post a Comment for "How To Set Progress Bar For Loading Activity With Data In Android"