The following program demonstrates Progress Dialog which is simply an extension to Android’s Alert Dialog Box.A Progress Dialog Box typically displays a progress bar beneath a message text box. This can be used to keep users informed of the ongoing progress of a time-consuming operation.
Here i have used a Handler class in Android which registers to a thread and provides a simple channel to send data and receive data to the associated thread via its sendMessage() and obtainMessage() . Here i have set the intial progress value to 0 and max value to 100 , u can set them as u like and incremented the progress by 20 by sending message to my Handler handle and check if the current progress of my progress dialog is equal to the max set when this happens we dismiss the dialog.
MainActivity.java
package com.example.progressdialog; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Menu; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener() { ProgressDialog progressdialog; @Override public void onClick(View v) { // TODO Auto-generated method stub progressdialog = new ProgressDialog(MainActivity.this); progressdialog.setMessage("Loading...."); progressdialog.setTitle("Please Wait.."); progressdialog.setProgressStyle(progressdialog.STYLE_HORIZONTAL); progressdialog.setProgress(0); progressdialog.setMax(100); progressdialog.show(); new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { while (progressdialog.getProgress() <= progressdialog.getMax()) { Thread.sleep(1000); handle.sendMessage(handle.obtainMessage()); if (progressdialog.getProgress() == progressdialog.getMax()) { progressdialog.dismiss(); } } } catch (Exception e) { } } }).start(); } Handler handle = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); progressdialog.incrementProgressBy(20); } }; }); } @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; } }
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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_alignRight="@+id/textView1" android:layout_below="@+id/textView1" android:layout_marginTop="80dp" android:text="Launch" /> </RelativeLayout>
Sanfoundry Global Education & Learning Series – 100+ Java Android Tutorials.
- Apply for Java Internship
- Check Programming Books
- Practice Programming MCQs
- Practice Information Technology MCQs
- Apply for Computer Science Internship