`
java--hhf
  • 浏览: 305721 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
阅读更多

                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-->

  然后我们看看效果

 

 

  实现代码如下

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);       

    }
	//定义监听器对象
    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();   
        }   
    }   
	
}

 


 

  • 大小: 11.2 KB
  • 大小: 10 KB
  • 大小: 24.2 KB
2
0
分享到:
评论

相关推荐

    Android 自定义ProgressDialog进度条对话框用法详解

    ProgressDialog为进度对话框。android手机自带的对话框显得比较单一,我们可以通过ProgressDialog来自己定义对话框中将要显示出什么东西

    Android典型技术模块开发详解

    3.3 基本用法 3.3.1 创建Activity 3.3.2 启动Activity 3.3.3 窗口Activity 3.3.4 Activity生命周期验证 3.4 Activity之间通信 3.4.1 Activity传递一般类型 3.4.2 Activity传递对象类型 3.4.2 Activity回传数据 3.5 ...

    ProgressBar、ProgessDialog-用法(详解)

    一、ProgressBar 1. 常用类型 1.1 不确定式圆形进度条 style=@android:style/Widget.Holo.Light.ProgressBar style=@android:style/Widget.DeviceDefault.Light.ProgressBar.Large ... 没有显示进度,可作为过场...

    疯狂Android讲义源码

     2.5.6 使用ProgressDialog创建进度  对话框 125  2.6 消息提示 127  2.6.1 使用Toast显示提示信息框 128  2.6.2 Notification的功能与用法 129  2.7 菜单 132  2.7.1 选项菜单和子菜单  (SubMenu) 132  ...

    疯狂Android讲义.part2

    2.5.6 使用ProgressDialog创建进度 对话框 125 2.6 消息提示 127 2.6.1 使用Toast显示提示信息框 128 2.6.2 Notification的功能与用法 129 2.7 菜单 132 2.7.1 选项菜单和子菜单 (SubMenu) 132 2.7.2 使用监听器来...

    疯狂Android讲义.part1

    2.5.6 使用ProgressDialog创建进度 对话框 125 2.6 消息提示 127 2.6.1 使用Toast显示提示信息框 128 2.6.2 Notification的功能与用法 129 2.7 菜单 132 2.7.1 选项菜单和子菜单 (SubMenu) 132 2.7.2 使用监听器来...

    《Android应用开发揭秘》附带光盘代码.

     4.2.22 对话框中的进度条(ProgressDialog)  4.3 界面布局  4.3.1 垂直线性布局  4.3.2 水平线性布局  4.3.3.相对布局(RelativeLayout)  4.3.4 表单布局(TableLayout)  4.3.5 切换卡(TabWidget)  4,4 小结 ...

    《Android应用开发揭秘》源码

     16.3.2 使用C\C++实现本地方法  16.3 编译C\C++代码  16.4 AndroidNDK中使用0penGL  16.5小结  第17章 Android脚本环境  17.1 Android脚本环境简介  17.2 Android脚本环境安装  17.3如何编写Android脚本...

    Android应用开发揭秘pdf高清版

    4.2.22 对话框中的进度条(ProgressDialog) 4.3 界面布局 4.3.1 垂直线性布局 4.3.2 水平线性布局 4.3.3.相对布局(RelativeLayout) 4.3.4 表单布局(TableLayout) 4.3.5 切换卡(TabWidget) 4,4 小结 第5章 Android...

Global site tag (gtag.js) - Google Analytics