首页 > 系统 > Android > 正文

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

2019-10-24 20:26:17
字体:
来源:转载
供稿:网友
ProgressDialog为进度对话框。android手机自带的对话框显得比较单一,我们可以通过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-->

然后我们看看效果

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

实现代码如下

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



注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表