ProgressDialog代表了进度对话框,程序只要创建ProgressDialog实例,并将它显示出来就是一个对话框。有两种方法实现。
①如果只是创建简单的进度对话框,那么调用ProgressDialog提供的静态show()方法显示对话框即可.
②创建ProgressDialog,然后调用方法对对话框的进度条进行设置,设置完成后将对话框显示出来即可.
ProgressDialog常用方法:
setIndeterminate(bool indetermimate):设置对话框的值是否明确,false为不明确
setMax(int max):设置对话框的进度条的最大值
setMessage(CharSequence message):设置对话框里显示的消息
setProgress(int value):设置对话框里进度条的进度值
setProgressStyle(int style):设置对话框里进度条的风格
setTitle(CharSequence message):设置对话框的标题
下面以一个实例进行讲解,主界面只有三个简单的按钮,当用户点击不同的按钮时显示不同的对话框。其中
第三个按钮激发的进度框比较复杂,该对话框用填充数组来模拟耗时任务,随着任务不断更新进度对话框上进度的显示。
主界面:
点击第一个按钮:
主要代码:
public void showSpinner(View source){
//调用静态方法显示进度条
ProgressDialog.show(this,"任务执行中","任务执行中,请等待",false,true);
}
点击第二个按钮:
主要代码:
public void showIndeterminate(){
pd1=new ProgressDialog(MainActivity.this);
//设置对话框的标题
pd1.setTitle("任务正在执行中");
//设置对话框的内容
pd1.setMessage("任务正在执行中, 敬请等待...");
//设置对话框能用"取消"按钮关闭
pd1.setCancelable(true);
//设置对话框的进度风格
pd1.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设置对话框的进度条能否显示进度
pd1.setIndeterminate(true);
pd1.show();
}
点击第三个按钮:
主要代码:
public void showProgress(View source){
//将进度条的方程进度重设为0
progressStatus=0;
//重设开始填充数组
hasData=0;
pd2=new ProgressDialog(MainActivity.this);
pd2.setMax(MAX_PROGRESS);
//设置对话框的标题
pd2.setTitle("任务完成百分比");
//设置对话框的内容
pd2.setMessage("耗时任务完成的百分比");
//设置对话框不能用取消按钮关闭
pd2.setCancelable(false);
//设置对话框进度条的风格
pd2.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设置对话框的进度条是否显示进度
pd2.setIndeterminate(false);
pd2.show();
new Thread(){
@Override
public void run() {
while (progressStatus<MAX_PROGRESS){
//获取耗时操作的完成百分比
progressStatus=MAX_PROGRESS*downWork()/data.length;
//发送空消息到Handler
handler.sendEmptyMessage(0x123);
}
//如果已经完成任务
if (progressStatus>=MAX_PROGRESS){
//关闭对话框
pd2.dismiss();
}
}
}.start();
}
项目源码下载地址:点击打开链接