android ProgressDialog实例
的有关信息介绍如下:之前已经学习过了对话框和进度条控件,那么现在将进度条加入到对话框中,就是ProgressDialog这个控件,进度条的展示有长形和圆形两种,通过一个实例进行学习。
新建一个android项目,名字叫ProgressDialogShow,参数可以自己设定,点击完成,可以得到下面的结果图
在实例中的界面,声明两个按钮,一个是打开长形进度条的对话框,一个是打开圆形进度条的对话框。
android:id="@+id/..." 声明button的ID
android:layout_width="fill_parent" 与父控件的宽度一致
android:layout_length="wrap_content" 与自身控件高度一致
android:text="" button控件展示的文本
首先看看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的结合来更新进度条
主体程序,
//找到两个button按钮,注册上响应的事件函数
longT=(Button)this.findViewById(R.id.longT);
circle=(Button)this.findViewById(R.id.circle);
longT.setOnClickListener(longClicker);
circle.setOnClickListener(circleClicker);
紧接上步,longClicker声明如下:
private OnClickListener longClicker = new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
m_count=0;
//创建ProgressDialog对象
m_pDialog=new ProgressDialog(ProgressDialogT.this);
//设置标题
m_pDialog.setTitle("长进度条信息");
//设置进度条风格
m_pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设置提示信息
m_pDialog.setMessage("这是一个长进度条");
//设置标题图标
m_pDialog.setIcon(R.drawable.icon);
//设置进度条是否不明确
m_pDialog.setIndeterminate(false);
//是否可以按下退回键取消
m_pDialog.setCancelable(true);
//开启线程,显示进度
new Thread() {
public void run() {
try {
while(m_count <= 100) {
// 由线程来控制进度
m_pDialog.setProgress(m_count++);
Thread.sleep(100);
}
m_pDialog.cancel();
} catch (Exception e) {
m_pDialog.cancel();
}
}
}.start();
//展示ProgressDialog 对象
m_pDialog.show();
}
};
对于circleClicker的声明:
private OnClickListener circleClicker = new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
m_count=0;
//创建ProgressDialog对象
m_pDialog=new ProgressDialog(ProgressDialogT.this);
//设置标题
m_pDialog.setTitle("圆形进度条信息");
//设置进度条风格
m_pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
//设置提示信息
m_pDialog.setMessage("这是一个圆形进度条");
//设置标题图标
m_pDialog.setIcon(R.drawable.icon);
//设置进度条是否不明确
m_pDialog.setIndeterminate(false);
//是否可以按下退回键取消
m_pDialog.setCancelable(true);
//展示ProgressDialog 对象
new Thread() {
public void run() {
try {
while(m_count <= 100) {
// 由线程来控制进度
m_pDialog.setProgress(m_count++);
Thread.sleep(100);
}
m_pDialog.cancel();
} catch (Exception e) {
m_pDialog.cancel();
}
}
}.start();
m_pDialog.show();
}
};
程序运行效果图,首先点击 长形进度条按钮,可以看见
点击圆形进度条按钮,可以看见