<1>简介
ProgressDialog是AlertDialog类的一个扩展,可以为一个未定义进度的任务显示一个旋转轮形状的进度动画,或者为一个指定进度的任务显示一个进度条。
一个对话框中显示一个进步指标和一个可选的文本信息或一个视图。只有文本信息或一个视图,可以同时使用。
对话框可以按back键取消。
<2>方法
setProgressStyle() 设置进度条风格
setTitle() 设置ProgressDialog 标题
setMessage() 设置ProgressDialog 提示信息
setIcon() 设置ProgressDialog 标题图标
setIndeterminate() 设置ProgressDialog 的进度条是否不明确
setCancelable() 设置ProgressDialog 是否可以按退回按键取消
setButton() 设置ProgressDialog 的一个Button
setProgress() 设置ProgressDialog 进度条进度
show() 显示ProgressDialog
<3>范例
package com.yarin.android.Examples_04_24;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Activity01 extends Activity
{
private Button Button1 = null;
private Button Button2 = null;
int count = 0;
//声明进度条对话框
ProgressDialog progressDialog = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//得到按钮对象
Button1 = (Button)findViewById(R.id.Button01);
Button2 = (Button)findViewById(R.id.Button02);
//设置mButton01的事件监听
Button1.setOnClickListener(new Button1Listener());
//设置mButton02的事件监听
Button2.setOnClickListener(new Button2Listener());
}
private class Button1Listener implements OnClickListener{
public void onClick(View v) {
//创建ProgressDialog对象
progressDialog = new ProgressDialog(Activity01.this);
// 设置进度条风格,风格为圆形,旋转的
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// 设置ProgressDialog 标题
progressDialog.setTitle("提示");
// 设置ProgressDialog 提示信息
progressDialog.setMessage("这是一个圆形进度条对话框");
// 设置ProgressDialog 标题图标
progressDialog.setIcon(R.drawable.a);
// 设置ProgressDialog 的进度条是否不明确
progressDialog.setIndeterminate(false);
// 设置ProgressDialog 是否可以按退回按键取消
progressDialog.setCancelable(true);
//设置ProgressDialog 的一个Button
progressDialog.setButton("确定", new SureButtonListener());
// 让ProgressDialog显示
progressDialog.show();
}
}
//Dialog中确定按钮的监听器
private class SureButtonListener implements android.content.DialogInterface.OnClickListener{
public void onClick(DialogInterface dialog, int which) {
//点击“确定按钮”取消对话框
dialog.cancel();
}
}
private class Button2Listener implements OnClickListener{
public void onClick(View v) {
count = 0;
// 创建ProgressDialog对象
progressDialog = new ProgressDialog(Activity01.this);
// 设置进度条风格,风格为长形
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
// 设置ProgressDialog 标题
progressDialog.setTitle("提示");
// 设置ProgressDialog 提示信息
progressDialog.setMessage("这是一个长形对话框进度条");
// 设置ProgressDialog 标题图标
progressDialog.setIcon(R.drawable.a);
// 设置ProgressDialog 进度条进度
progressDialog.setProgress(100);
// 设置ProgressDialog 的进度条是否不明确
progressDialog.setIndeterminate(false);
// 设置ProgressDialog 是否可以按退回按键取消
progressDialog.setCancelable(true);
// 让ProgressDialog显示
progressDialog.show();
new Thread()
{
public void run()
{
try
{
while (count <= 100)
{
// 由线程来控制进度。
progressDialog.setProgress(count++);
Thread.sleep(100);
}
progressDialog.cancel();
}
catch (InterruptedException e)
{
progressDialog.cancel();
}
}
}.start();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="圆形进度条" />
<Button
android:id="@+id/Button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="长形进度条" />
</LinearLayout>