Welcome to Android ProgressDialog Example. In this tutorial we’ll learn how to create Android Progress Dialog containing a ProgressBar. Also we’ll discuss at length the difference between a ProgressDialog and ProgressBar.
Android ProgressDialog
Android ProgressDialog is an extension of AlertDialog. To know more about an AlertDialog, check out it’s tutorial here.
Android ProgressDialog is a dialog box/dialog window which shows the progress of a task. Android Progress Dialog is almost same as ProgressBar with the exception that this is displayed as a dialog box.
In order to create a ProgressDialog to display a ProgressBar we need to instantiate it like this.
1 2 3 |
ProgressDialog progress = new ProgressDialog(this); |
Difference between Android ProgressDialog and ProgressBar
- ProgressBar is a View (like TextView, ImageView, Button, etc..), which can be used in the layout to show some progress. A ProgressBar is used to indicate that something in tge app is still loading while the user may still interact with other parts
- ProgressDialog is a Dialog with ‘built-in’ ProgressBar. A ProgressDialog is used when we want to prevent the user from interacting with the application while waiting. The Dialog aspect freezes the user from doing anything until it is dismissed
Android ProgressDialog Attributes
Some important attributes of android ProgressDialog are given below.
- setMessage() : This method is used to show the message to the user. Example: Loading…
- setTitle() : This method is used to set a title to the dialog box
- setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) : This method is used to show the horizontal progress bar in the dialog box
- setProgressStyle(ProgressDialog.STYLE_SPINNER) : This method is used to show the circle/spinning progress bar in the dialog box
- setMax() : This method is used to set the maximum value
- getProgress() : This method is used to get the current progress value in numbers
- getMax() : This method returns the maximum value of the progress
- show(Context context, CharSequence title, CharSequence message) : This is a static method, used to display progress dialog
- incrementProgressBy(int diff) : This method increments the progress bar by the difference of value passed as a parameter
In this tutorial we’ll develop an application that displays a ProgressDialog containing a horizontal ProgressBar which increments after every 200 milliseconds.
Android ProgressDialog Project Structure
Android ProgressDialog Example
The activity_main.xml
contains a Button which invokes a ProgressDialog on click as shown in the xml code below:
activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" Start ProgressDialog" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="57dp" /> </RelativeLayout> |
The MainActivity.java file is given below.
MainActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
package com.journaldev.progressdialog; import android.app.ProgressDialog; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { Button button; ProgressDialog progressDoalog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { progressDoalog = new ProgressDialog(MainActivity.this); progressDoalog.setMax(100); progressDoalog.setMessage("Its loading...."); progressDoalog.setTitle("ProgressDialog bar example"); progressDoalog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDoalog.show(); new Thread(new Runnable() { @Override public void run() { try { while (progressDoalog.getProgress() <= progressDoalog .getMax()) { Thread.sleep(200); handle.sendMessage(handle.obtainMessage()); if (progressDoalog.getProgress() == progressDoalog .getMax()) { progressDoalog.dismiss(); } } } catch (Exception e) { e.printStackTrace(); } } }).start(); } Handler handle = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); progressDoalog.incrementProgressBy(1); } }; }); } } |
The following code activates the handler in which we write the code to increment the progress bar.
1 2 3 |
handle.sendMessage(handle.obtainMessage()); |
Below is the output video when you will run the android progress dialog example application in android emulator.
This brings an end to Android ProgressDialog Example tutorial. You can download the final Android ProgressDialog Project from the below link.