ProgressDialog==>进度条对话框

ProgressDialog本身就代表一个进度条对话框,程序只需要创建ProgressDialog实例,并将其显示出来就是一个进度条对话框;开发者也可以设置进度对话框里进度条的方法。

包含了如下常用方法:

  1.setIndeterminate(boolean indeterminate):设置对话框里的进度条是否显示进度值;

  2.setMax(int max):设置对话框里进度条的最大值;

  3.setMessage(CharSequence message):设置对话框里显示的消息;

  4.setProgress(int value):设置对话框里进度条的进度值;

  5.setProgressStyle(int style):设置对话框里进度条的风格;

实例如下:

布局文件==》
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <EditText
android:id="@+id/edtContent"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> <Button
android:id="@+id/btnexec"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="progressDialog" /> </LinearLayout> 代码实现==》
package com.example.myprogressdialog1; import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity
{
private int[] date = new int[100];
private int hasDate = 0;
final int progress_Dialog = 0x112;
private int progressStatus = 0;
private ProgressDialog pd;
private Handler handler; @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); Button btnexec = (Button) this.findViewById(R.id.btnexec);
btnexec.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
showDialog(progress_Dialog);
}
});
handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
if (msg.what == 0x112)
{
pd.setProgress(progressStatus);
}
}
};
} @Override
protected Dialog onCreateDialog(int id, Bundle args)
{
System.out.println("---------------create---------------");
switch (id)
{
case progress_Dialog:
pd = new ProgressDialog(this);
pd.setMax(100);
pd.setTitle("任务完成百分比");
pd.setMessage("耗时任务完成百分比");
// 设置对话框取消按钮不可用
pd.setCancelable(false);
// 设置对话框进度条样式风格
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
// 设置对话框的进度条是否显示进度
pd.setIndeterminate(true);
break;
}
return pd;
} // 该方法将在onCreateDialog()调用之后被回调
@Override
protected void onPrepareDialog(int id, Dialog dialog)
{
System.out.println("-----------------prepare-----------------");
super.onPrepareDialog(id, dialog);
switch (id)
{
case progress_Dialog:
pd.incrementSecondaryProgressBy(-pd.getProgress());
new Thread()
{
public void run()
{
while (progressStatus < 100)
{
progressStatus = doWork();
Message msg = new Message();
msg.what = 0x112;
handler.sendMessage(msg);
}
if (progressStatus >= 100)
{
pd.dismiss();// 关闭对话框
}
}
}.start();
break;
}
} private int doWork()
{
date[hasDate++] = (int) (Math.random() * 100);
try
{
Thread.sleep(100);
} catch (InterruptedException e)
{
e.printStackTrace();
}
return hasDate;
} @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;
}
}

运行效果:

android学习笔记20——ProgressDialog进度条对话框的更多相关文章

  1. Android学习笔记_76_Android ProgressBar 进度条

    android 进度条的样式  例1:(默认样式(中等圆形))Xml代码 <ProgressBar      android:id="@+id/progressBar1"   ...

  2. 【转】【Android】ProgressDialog进度条对话框的使用

    Android ProgressDialog进度条对话框的使用: 转自:http://aina-hk55hk.iteye.com/blog/679134/ <?xml version=" ...

  3. 【转】24. android dialog ——ProgressDialog 进度条对话框详解

    原文网址:http://blog.csdn.net/jamesliulyc/article/details/6375598 首先在onCreateDialog方法里创建一个ProgressDialog ...

  4. Android——ProgressDialog 进度条对话框

    public class ProgressDialogActivity extends Activity {    private Button btn_large_pd, btn_horizonta ...

  5. Android学习笔记_81_Android ProgressDialog ProgressBar 各种效果

    1,弹出Dialog 屏幕不变暗. 创建一个样式就OK了:在styles.xml文件里添加样式: 1, <style name="dialog" parent="@ ...

  6. ProgressDialog进度条对话框

    (一) 1.效果图: 2.activity_main.xml <?xml version="1.0" encoding="utf-8"?> < ...

  7. Android学习笔记(20)————利用ListView制作带竖线的多彩表格

    http://blog.csdn.net/conowen/article/details/7421805 /********************************************** ...

  8. Android学习笔记(20):时钟(AnalogClock和TextClock)和计时器(Chronometer)

    时钟文本TextClock继承自TextView.是用于显示当前时间的文本框. TextClock支持的XML属性和相关方法 XML属性 相关方法 说明 android:format12Hour se ...

  9. Android 进度条对话框ProgressDialog

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

随机推荐

  1. php防注入留言板(simple)

    新手学php,试手案例便是留言板.以前未连接数据库时,我是直接将用户输入的留言写入到一个txt,然后再从txt读取显示(~.~别鄙视). 最近学习了php访问MySQL数据库的一些知识,重写了一下留言 ...

  2. twisted 初体验

    前言: 最近帮朋友review其模块服务代码, 使用的是python的twisted网络框架. 鉴于之前并没有使用过, 于是决定好好研究一番. 个人接触最早的高性能网络编程框架是Mina, 所谓先入为 ...

  3. Android加载网络图片的工具类

    ImageView加载网络的图片 HttpUtil.java package com.eiice.httpuimagetils; import java.io.ByteArrayOutputStrea ...

  4. 浅谈C中的malloc和free

    转自http://bbs.bccn.net/thread-82212-1-1.html非常感谢作者 浅谈C中的malloc和free 在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的 ...

  5. 工作中遇到的问题--实现程序运行时就加载CustomerSetting的第二种方法

    写一个自定义注解 @Target({ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD})@Retention(Retention ...

  6. Java—面向对象—构造方法及相关思维导图

    先构造一个Book类的代码 package org.hanqi.pn0120; public class Book { //构造方法 //1.方法名和类名一样 //2.没有返回值,不需要加void / ...

  7. 黑马程序员——JAVA基础之Map集合

    ------- android培训.java培训.期待与您交流! ---------- Map集合: 该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 和Set很像,其实Set底层就是使用了M ...

  8. linux 大并发下 内核优化

     To support over 500k users, you *need* - A 64 bits hardware/kernel (AMD64, Opterons) - At least 8GB ...

  9. soap的简单实现(PHP)

    1.非wsdl模式 (1)函数文件 testphp/ServiceFunctions.class.php <?php /** * @author 左小兵 * */ class ServiceFu ...

  10. jquery循环延迟加载,用于在图片加载完成后再加载js

    <html> <head> <script type="text/javascript" src="http://lib.sinaapp.c ...