(转)ProgressDialog用法详解
转载自:
ProgressDialog用法详解
ProgressDialog的基本用法
ProgressDialog为进度对话框。android手机自带的对话框显得比较单一,我们可以通过ProgressDialog来自己定义对话框中将要显示出什么东西。
首先看看progressDialog里面的方法
setProgressStyle:设置进度条风格,风格为圆形,旋转的。
setTitlt:设置标题
setMessage:设置提示信息;
setIcon:设置标题图标;
setIndeterminate:设置ProgressDialog 的进度条是否不明确;这个属性对于ProgressDailog默认的转轮模式没有实际意义,默认下设置为true,它仅仅对带有ProgressBar的Dialog有作用。修改这个属性为false后可以实时更新进度条的进度。
setCancelable:设置ProgressDialog 是否可以按返回键取消;
CancelListner:当前Dialog强制取消之后将会被执行,通常用来清理未完成的任务。
setButton:设置ProgressDialog 的一个Button(需要监听Button事件);
show:显示ProgressDialog。
cancel:删除progressdialog
dismiss: 删除progressdialog 作用和cancel相同
setProgress(intCounter);更新进度条,当然一般都需要Handler的结合来更新进度条
<!--EndFragment-->
然后我们看看效果
实现代码如下
- <span style="">package cn.android;
- import android.app.Activity;
- import android.app.ProgressDialog;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.Toast;
- public class SecondActivity extends Activity implements Runnable{
- /**
- * Called when the activity is first created.
- * Activity入口
- * */
- private Button b_dialog,b_dialog1,button;//两个按钮
- private ProgressDialog pd,pd1;//进度条对话框
- private int count;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.second);//关联对应的界面
- b_dialog = (Button)this.findViewById(R.id.button_dialog);
- b_dialog1 = (Button)this.findViewById(R.id.Button_dialog1);
- //处理事件发生时要做的事
- b_dialog.setOnClickListener(listener);
- b_dialog1.setOnClickListener(listener);
- </span>
- <span style=""> }
- //定义监听器对象
- private OnClickListener listener = new OnClickListener() {
- // 鼠标按下后
- public void onClick(View v) {
- // 得到当前被触发的事件的ID —— 类型是int
- int id = v.getId();
- if(id == R.id.button_dialog){
- //按下确定键就会消失的进程对话框
- // pd = new ProgressDialog(SecondActivity.this);// 创建ProgressDialog对象
- // pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);// 设置进度条风格,风格为圆形,旋转的
- // pd.setTitle("提示");// 设置ProgressDialog 标题
- // pd.setMessage("这是一个圆形进度条对话框");// 设置ProgressDialog提示信息
- // pd.setIcon(R.drawable.icon);// 设置ProgressDialog标题图标
- // // 设置ProgressDialog 的进度条是否不明确 false 就是不设置为不明确
- // pd.setIndeterminate(false);
- // pd.setCancelable(true); // 设置ProgressDialog 是否可以按退回键取消
- // pd.setButton("确定", new Bt1DialogListener()); // 设置ProgressDialog 的一个Button
- // pd.show(); // 让ProgressDialog显示
- //过1秒钟就会自己消失的进程对话框
- //弹出另外一种对话框
- pd = ProgressDialog.show(SecondActivity.this, "自动关闭对话框", "Working,,,,,,1秒", true, false);
- Thread thread = new Thread(SecondActivity.this);//开启一个线程来延时
- thread.start();//启动线程
- }else if(id == R.id.Button_dialog1){
- pd1 = new ProgressDialog(SecondActivity.this);// 创建ProgressDialog对象
- pd1.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);// 设置进度条风格,风格为圆形,旋转的
- pd1.setTitle("提示");// 设置ProgressDialog 标题
- pd1.setMessage("这是一个条状进度条对话框");// 设置ProgressDialog提示信息
- pd1.setIcon(R.drawable.secondback);// 设置ProgressDialog标题图标
- // 设置ProgressDialog 的进度条是否不明确 false 就是不设置为不明确
- pd1.setIndeterminate(false);
- pd1.setCancelable(true); // 设置ProgressDialog 是否可以按退回键取消
- pd1.setProgress(100);// 设置ProgressDialog 进度条进度
- pd1.show(); // 让ProgressDialog显示
- count = 0;
- new Thread() {
- public void run() {
- try {
- while(count <= 100) {
- // 由线程来控制进度
- pd1.setProgress(count++);
- Thread.sleep(100);
- }
- pd1.cancel();
- } catch (Exception e) {
- pd1.cancel();
- }
- }
- }.start();
- }
- }
- };
- //run的是实现
- public void run() {
- try {
- Thread.sleep(1000);//睡1秒
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- handler.sendEmptyMessage(0);//传送消息
- }
- //定义处理消息的对象
- private Handler handler = new Handler(){
- //加入传消息来了就这么么办
- public void handleMessage(Message msg){
- pd.dismiss();//对话框消失
- Toast.makeText(SecondActivity.this, "对话框就消失了", 3).show();
- }
- };
- // pdButton01的监听器类
- class Bt1DialogListener implements DialogInterface.OnClickListener {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // 点击“确定”按钮取消对话框
- dialog.cancel();
- }
- }
- }
- </span>