본문 바로가기

Android/ProgressDialog Demo

안드로이드 ProgressDialog 예제

안드로이드 ProgressDialog 사용 예제

ProgressDialog는 User Thread 에서도 호출할 수 있으므로 Handler나 invalidate(), postInvalidate() 등을 사용할 필요가 없다.

개발자가 정의한 User Thread에서도 setProgress()를 호출해주면 진행바를 실행할 수 있다.


progressdialog.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/linearlayout"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >


    <Button

        android:id="@+id/button1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:onClick="onBtnStart"

        android:text="시작" />

</LinearLayout>


package test.android.hello;


import android.app.Activity;

import android.app.ProgressDialog;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.LinearLayout;

import android.widget.ProgressBar;


public class ProgressDialogActivity extends Activity {


ProgressDialog progressDlg;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}


public void onBtnStart(View v){

Log.i("버튼", "ProgressDialog테스트");

progressDlg = new ProgressDialog(this);

progressDlg.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

                //progressDlg.setIndeterminate(true);

progressDlg.setTitle("Loading....");

progressDlg.setCancelable(true);

progressDlg.setMax(100);

progressDlg.setProgress(0);

progressDlg.show();

new Thread(){

public void run() {

for(int i=0;i<=100;i++) {

progressDlg.setProgress(i);

try {

Thread.sleep(200);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

progressDlg.dismiss();

}

}.start();

}

}