Progress Bar

Progress Bar is helpful for check on downloading process or loading any content to open in our app. Let us see an Example for Progress Bar.

activity_main.xml

Drag button from pallette, and look like example below

  
      
          

MainActivity.java

Add Progress Bar to activity file with the following methods

    package com.example.codebridgeprogressbarexample;  
    import android.app.Activity;  
    import android.app.ProgressDialog;  
    import android.os.Bundle;  
    import android.os.Handler;  
    import android.widget.Button;  
    import android.view.Menu;  
    import android.view.View;  
    import android.view.View.OnClickListener;  

    public class MainActivity extends Activity {  
        Button btnProgressBar;  
        ProgressDialog progressDialog;  
        private int progressBarStatus = 0;  
        private Handler progressBarHandler = new Handler();  
            private long fileSize = 0;  
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.activity_main);  
            addListenerOnButtonClick();  
        }  
        public void addListenerOnButtonClick() {  
            btnProgressBar= (Button) findViewById(R.id.btn_download);  
            btnProgressBar.setOnClickListener(new OnClickListener(){  
       
               @Override  
               public void onClick(View v) {  
                // creating progress bar dialog  
                progressDialog= new ProgressDialog(v.getContext());  
                progressDialog.setCancelable(true);  
                progressDialog.setMessage("File downloading ...");  
                progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
                progressDialog.setProgress(0);  
                progressDialog.setMax(100);  
                progressDialog.show();  
                //reset progress bar and filesize status  
                progressBarStatus = 0;  
                fileSize = 0;  
       
                new Thread(new Runnable() {  
                  public void run() {  
                    while (progressBarStatus < 100) { // performing operation progressBarStatus = doOperation(); try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();} // Updating the progress bar progressBarHandler.post(new Runnable() { public void run() { progressDialog.setProgress(progressBarStatus); } }); } // performing operation if file is downloaded, if (progressBarStatus >= 100) {  
                        // sleeping for 1 second after operation completed  
                        try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}  
                        // close the progress bar dialog  
                        progressDialog.dismiss();  
                    }  
                  }  
                 }).start();  
                }//end of onClick method  
              });  
             }  
        // checking how much file is downloaded and updating the filesize   
        public int doOperation() {  
            //The range of ProgressDialog starts from 0 to 10000  
            while (fileSize <= 10000) {  
                fileSize++;  
                if (fileSize == 1000) {  
                    return 10;  
                } else if (fileSize == 2000) {  
                    return 20;  
                } else if (fileSize == 3000) {  
                    return 30;  
                } else if (fileSize == 4000) {  
                return 40;//you can add more else if  
                } else{  
                    return 100;  
                }  
            }//end of while  
            return 100;  
        }//end of doOperation  
      
        @Override  
        public boolean onCreateOptionsMenu(Menu menu) {  
            // Inflate the menu; this adds items to the action bar if it is present.  
            getMenuInflater().inflate(R.menu.main, menu);  
            return true;  
        }  
    }