android学习笔记20——ProgressDialog进度条对话框
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进度条对话框的更多相关文章
- Android学习笔记_76_Android ProgressBar 进度条
android 进度条的样式 例1:(默认样式(中等圆形))Xml代码 <ProgressBar android:id="@+id/progressBar1" ...
- 【转】【Android】ProgressDialog进度条对话框的使用
Android ProgressDialog进度条对话框的使用: 转自:http://aina-hk55hk.iteye.com/blog/679134/ <?xml version=" ...
- 【转】24. android dialog ——ProgressDialog 进度条对话框详解
原文网址:http://blog.csdn.net/jamesliulyc/article/details/6375598 首先在onCreateDialog方法里创建一个ProgressDialog ...
- Android——ProgressDialog 进度条对话框
public class ProgressDialogActivity extends Activity { private Button btn_large_pd, btn_horizonta ...
- Android学习笔记_81_Android ProgressDialog ProgressBar 各种效果
1,弹出Dialog 屏幕不变暗. 创建一个样式就OK了:在styles.xml文件里添加样式: 1, <style name="dialog" parent="@ ...
- ProgressDialog进度条对话框
(一) 1.效果图: 2.activity_main.xml <?xml version="1.0" encoding="utf-8"?> < ...
- Android学习笔记(20)————利用ListView制作带竖线的多彩表格
http://blog.csdn.net/conowen/article/details/7421805 /********************************************** ...
- Android学习笔记(20):时钟(AnalogClock和TextClock)和计时器(Chronometer)
时钟文本TextClock继承自TextView.是用于显示当前时间的文本框. TextClock支持的XML属性和相关方法 XML属性 相关方法 说明 android:format12Hour se ...
- Android 进度条对话框ProgressDialog
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
随机推荐
- 无法远程访问虚拟机中的EM (Oracle Enterprise Manager)
今天安装EM,因为文件系统采用ASM来控制,后面需要输入一些ASM相关的信息.这个ASMSNMP用户是新建,所以设个密码自己记下就行. Enter the following information: ...
- UVa 11729 - Commando War
[题目翻译]: 题目分析:因为任务是可以并行的执行,所以直觉上是花费时间长的任务优先去部署.但是这到题目还给你交待任务的时间,所以容易让人想多了. 不管有没有交待任务的时间,对于任务x和y,只可能有两 ...
- Java--常用类
1.方法中参数传递:值传递 基本数类型:具体的实际值 引用数据类型:对象的地址值 2.继承:关键字:extends单继承继承父类的非私有成员多重继承 2.权限的修饰符:private 只能在当前类的内 ...
- poj 2299 树状数组求逆序对数+离散化
Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 54883 Accepted: 20184 ...
- 关于setInterval()里的this和细节
setInterval(fn,t);里的fn中,要使用外部类的this,则需要先将this保存起来,再使用保存的this,不能直接使用this,里面的this是指向window对象,记住setInte ...
- 【P1203】买花
我先在已经弱到连高精乘单精都能写错的地步了QAQ 原题: 求一个小于等于N的数M,使得phi(M)/M最小,其中phi(M)是与M互质且比M小的数的个数.例如phi(4)=2,因为1,3和4互质. N ...
- 【转】 iOS日常学习 - iOS10上关于NSPhotoLibraryUsageDescription等问题
原文网址:http://blog.csdn.net/wang631106979/article/details/52578001 最近升级了Xcode8.0,真是很多坑啊,填完一个来另外一个,今天又遇 ...
- rac ASM下最简单归档开启方法
原创作品,出自 "深蓝的blog" 博客,深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/47172639本次先 ...
- 套接字I/O模型-WSAEventSelect(转载)
和WSAAsyncSelect类似,它也允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知. 该模型最主要的区别是在于网络事件是由对象句柄完成的,而不是通过窗口例程完成. 事件通知 事件 ...
- 二十四种设计模式:组合模式(Composite Pattern)
组合模式(Composite Pattern) 介绍将对象组合成树形结构以表示"部分-整体"的层次结构.它使得客户对单个对象和复合对象的使用具有一致性.示例有一个Message实体 ...