Android ProgressDialog Example

Filed Under: Android

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.


ProgressDialog progress = new ProgressDialog(this);

Difference between Android ProgressDialog and ProgressBar

  1. 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
  2. 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.

  1. setMessage() : This method is used to show the message to the user. Example: Loading…
  2. setTitle() : This method is used to set a title to the dialog box
  3. setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) : This method is used to show the horizontal progress bar in the dialog box
  4. setProgressStyle(ProgressDialog.STYLE_SPINNER) : This method is used to show the circle/spinning progress bar in the dialog box
  5. setMax() : This method is used to set the maximum value
  6. getProgress() : This method is used to get the current progress value in numbers
  7. getMax() : This method returns the maximum value of the progress
  8. show(Context context, CharSequence title, CharSequence message) : This is a static method, used to display progress dialog
  9. 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 progress dialog, Android ProgressDialog, Android ProgressDialog Example

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


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://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


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.


handle.sendMessage(handle.obtainMessage());

Below is the output video when you will run the android progress dialog example application in android emulator.

android progressdialog example, android ProgressDialog, android progress dialog

This brings an end to Android ProgressDialog Example tutorial. You can download the final Android ProgressDialog Project from the below link.

Comments

  1. Mayur Kodhe says:

    I want to implement object detection application. where it captures the images and detects objects in it. I tried so many demo’s but cant get the accuracy. help me if you find anything useful on it.
    Thanks in advance.

  2. chamira says:

    thank you very much for the code

  3. Tao says:

    In your code, there is a miss-typo
    ” if (progressDoalog.getProgress() ” -> ” if (progressDialog.getProgress() “

    1. Tao says:

      Oh, my,, I was wrong, your instance name was progressDoalog, I didn’t catch that.

  4. saran says:

    Thank you so much

Leave a Reply

Your email address will not be published. Required fields are marked *

close
Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages