package com.shao.android;


import java.util.Random;


import .Activity;

import .ProgressDialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;


public class Main extends Activity implements OnClickListener{

    /** Called when the activity is first created. */

    private static final int MAX_Progress=100;

    private ProgressDialog progressDialog;

    private Handler progressHandler;

    private int progress;


    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        Button button1=(Button)findViewById(.btn1);

        Button button2=(Button)findViewById(.btn2);

        button1.setOnClickListener(this);

        button2.setOnClickListener(this);

    }


    @Override

    public void onClick(View v) {

        // TODO Auto-generated method stub

        switch(v.getId())

        {

        case .btn1:

            showProgressDialog(ProgressDialog.STYLE_HORIZONTAL);

            break;

        case .btn2:

            showProgressDialog(ProgressDialog.STYLE_SPINNER);

            break;

        }

    }

    // 显示进度对话框,style表示进度对话框的风格

    private void showProgressDialog(int style)

    {

        progressDialog=new ProgressDialog(this);

        progressDialog.setIcon(R.drawable.wait);

        progressDialog.setTitle("正在处理数据...");

        progressDialog.setMessage("请稍后...");

        // 设置进度对话框的风格

        progressDialog.setProgressStyle(style);

        // 设置进度对话框的进度最大值

        progressDialog.setMax(MAX_Progress);

        // 设置进度对话框的【暂停】按钮

    progressDialog.setButton("暂停", new DialogInterface.OnClickListener() {



        @Override

        public void onClick(DialogInterface dialog, int whichButton) {

            // TODO Auto-generated method stub

            // 通过删除消息代码的方式停止定时器的执行

            progressHandler.removeMessages(1);

            // 恢复进度初始值

            progress=0;

            progressDialog.setProgress(0);

        }

    });   

    progressDialog.show();

    progressHandler=new Handler(){


        @Override

        public void handleMessage(Message msg) {

            // TODO Auto-generated method stub

            super.handleMessage(msg);

            // if (progressDialog.getProgress() >= MAX_PROGRESS)

            if(progress>=MAX_Progress)

            {

                // 进度达到最大值,关闭对话框

                progress=0;

                progressDialog.dismiss();

            }

            else {

                progress++;

                // 将进度递增1

                progressDialog.incrementProgressBy(1);

                // 随机设置下一次递增进度(调用handleMessage方法)的时间

                progressHandler.sendEmptyMessageDelayed(1,50+ new Random().nextInt(500));


            }

        }



    };


    // 设置进度初始值

    progress=(progress>0)?progress:0;

    progressDialog.setProgress(progress);

    progressHandler.sendEmptyMessage(1);

    }


}