android ProgressDialog 对话框

  1 /**
  2  * Description:
  3  * <br/>site: <a href="http://www.crazyit.org">crazyit.org</a>
  4  * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
  5  * <br/>This program is protected by copyright laws.
  6  * <br/>Program Name:
  7  * <br/>Date:
  8  * @author  Yeeku.H.Lee [email protected]
  9  * @version  1.0
 10  */
 11 public class ProgressDialogTest extends Activity
 12 {
 13     // 该程序模拟填充长度为100的数组
 14     private int[] data = new int[100];
 15     int hasData = 0;
 16     // 定义进度对话框的标识
 17     final int PROGRESS_DIALOG = 0x112;
 18     // 记录进度对话框的完成百分比
 19     int progressStatus = 0;
 20     ProgressDialog pd;
 21     // 定义一个负责更新的进度的Handler
 22     Handler handler;
 23
 24     @Override
 25     public void onCreate(Bundle savedInstanceState)
 26     {
 27         super.onCreate(savedInstanceState);
 28         setContentView(R.layout.main);
 29         Button execBn = (Button) findViewById(R.id.exec);
 30         execBn.setOnClickListener(new OnClickListener()
 31         {
 32             public void onClick(View source)
 33             {
 34                 showDialog(PROGRESS_DIALOG);
 35             }
 36         });
 37         handler = new Handler()
 38         {
 39             @Override
 40             public void handleMessage(Message msg)
 41             {
 42                 // 表明消息是由该程序发送的。
 43                 if (msg.what == 0x111)
 44                 {
 45                     pd.setProgress(progressStatus);
 46                 }
 47             }
 48         };
 49     }
 50
 51     @Override
 52     public Dialog onCreateDialog(int id, Bundle status)
 53     {
 54         System.out.println("------create------");
 55         switch (id)
 56         {
 57             case PROGRESS_DIALOG:
 58                 // 创建进度对话框
 59                 pd = new ProgressDialog(this);
 60                 pd.setMax(100);
 61                 // 设置对话框的标题
 62                 pd.setTitle("任务完成百分比");
 63                 // 设置对话框 显示的内容
 64                 pd.setMessage("耗时任务的完成百分比");
 65                 // 设置对话框不能用“取消”按钮关闭
 66                 pd.setCancelable(false);
 67                 // 设置对话框的进度条风格
 68                 pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); //圆形进度条
 69 //                pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//水平进度条
 70                 // 设置对话框的进度条是否显示进度
 71                 pd.setIndeterminate(false);
 72                 break;
 73         }
 74         return pd;
 75     }
 76
 77     // 该方法将在onCreateDialog方法调用之后被回调
 78     @Override
 79     public void onPrepareDialog(int id, Dialog dialog)
 80     {
 81         System.out.println("------prepare------");
 82         super.onPrepareDialog(id, dialog);
 83         switch (id)
 84         {
 85             case PROGRESS_DIALOG:
 86                 // 对话框进度清零
 87                 pd.incrementProgressBy(-pd.getProgress());
 88                 new Thread()
 89                 {
 90                     public void run()
 91                     {
 92                         while (progressStatus < 100)
 93                         {
 94                             // 获取耗时操作的完成百分比
 95                             progressStatus = doWork();
 96                             // 发送消息到Handler
 97                             Message m = new Message();
 98                             m.what = 0x111;
 99                             // 发送消息
100                             handler.sendMessage(m);
101                         }
102
103                         // 如果任务已经完成
104                         if (progressStatus >= 100)
105                         {
106                             // 关闭对话框
107                             pd.dismiss();
108                         }
109                     }
110                 }.start();
111                 break;
112         }
113     }
114
115     // 模拟一个耗时的操作。
116     public int doWork()
117     {
118         // 为数组元素赋值
119         data[hasData++] = (int) (Math.random() * 100);
120         try
121         {
122             Thread.sleep(100);
123         }
124         catch (InterruptedException e)
125         {
126             e.printStackTrace();
127         }
128         return hasData;
129     }
130 }
时间: 2024-11-08 21:46:11

android ProgressDialog 对话框的相关文章

[Android]关于对话框dialog的一些事

7种形式的Android Dialog使用举例 http://www.oschina.net/question/54100_32486 [Android]关于对话框dialog的一些事,布布扣,bubuko.com

(七)android 通知对话框,并且监听了返回键,当按下返回键也会创建一个对话框

一.activity_main.java中代码   1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="matc

android的对话框

android中的对话框形式有四种,分别是一般对话框形式,列表对话框形式,单选按钮对话框,多选按钮对话框,下面我一一对他们进行详解. <一>一般对话框 一般对话框形式如下图: 具体实现代码如下: 1 new AlertDialog.Builder(this) 2 .setTitle("删除")//设置标题 3 .setMessage("确定要删除指定的记录?")//设置提示消息 4 .setPositiveButton("确定",ne

android 时间对话框 TimePickerDialog详细介绍

 个人在做提醒功能的时候用到了TimePickerDialog对话框,查阅了很多技术资料,但是感觉很多东西都说的不是很详细,并且很多地方,都有不完善的地方,比如有弹出对话框得到的不是系统当前的时间,而是一个其他时间的现象,让人很是苦闷.所以在经过几度研究之后,决定把个人对此空间的部分理解拿出来与大家讨论,如有不对之处,敬请谅解,会加以改进. 闲话不多说,直接进入主题: 首先,我们要在程序中声明一个日历的对象,并对其实例化获取日历实例,后面会用到. private Calendar c = C

Android日期对话框NumberPicker的用法教程

NumberPicker是Android3.0之后引入的一个控件,NumberPicker 是用于选择一组预定义好数字的控件.比如时间hour的选择只有0-23有效,则可以通过setMinValue和setMaxValue设定. 使用该控件时需注意他的两个listener和一个formatter:一个listener用于监听当前value的变化:一个listener用于监听该控件的scroll状态:formatter用于格式化显示该控件中的value.下面逐一介绍这几个接口: 1.NumberP

Android——ProgressDialog 进度条对话框

public class ProgressDialogActivity extends Activity {    private Button btn_large_pd, btn_horizontal_pd;    // 声明进度条对话框    ProgressDialog mProgressDialog;    // 进度    int mCount = 0; @Override    protected void onCreate(Bundle savedInstanceState) { 

Android 进度对话框 ProgressDialog

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onCl

android各种对话框总结笔记

确定取消对话框(带图标) //(上下文,主题) new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT) .setTitle("标题").setMessage("内容").setIcon(R.drawable.ic_launcher) //响应点击事件 .setPositiveButton("确定", new OnClickListener() { @Overrid

【转】Android ProgressDialog的使用

原文网址:http://blog.csdn.net/sjf0115/article/details/7255280 版权声明:本文为博主原创文章,未经博主允许不得转载. <1>简介 ProgressDialog是AlertDialog类的一个扩展,可以为一个未定义进度的任务显示一个旋转轮形状的进度动画,或者为一个指定进度的任务显示一个进度条. 一个对话框中显示一个进步指标和一个可选的文本信息或一个视图.只有文本信息或一个视图,可以同时使用. 对话框可以按back键取消. <2>方法