位置: 首页>> android ProgressDialog的用法及实例

android ProgressDialog的用法及实例

ProgressDialog为进度对话框。android手机自带的对话框显得比较单一,我们可以通过ProgressDialog来自己定义对话框中将要显示出什么东西。
首先看看progressDialog里面的方法
setProgressStyle:设置进度条风格,风格为圆形,旋转的。
setTitle:设置标题
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的结合来更新进度条

在使用ProgressDialog时,定义一下ProgressDialog progressDialog;然后在需要出现ProgressDialog的地方调用一下 progressDialog=newProgressDialog(SearchActivity.this);//必须的
progressDialog.setCancelable(true);//设置ProgressDialog 可以按返回键取消(可以根据需要设置)
progressDialog.setMessage(“正在加载。。。”);//设置提示信息(可以根据需要设置)
progressDialog.show();//让ProgressDialog显示(必须加上)
在完成后可在相关的代码处设置一下progressDialog.hide();让progressDialog消失
注:progressDialog只是一个小对话框,在项目中根据实际需要设置即可,可以自定义样式………………

*********************************************************************************************************************
实例:
package yinlans.com;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;

public class Demo01Activity extends Activity {

private Button button;
private ProgressDialog mProgressDialog;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

button = (Button) findViewById(R.id.button1);

button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
/* 显示ProgressDialog */
mProgressDialog = new ProgressDialog(Demo01Activity.this);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);//设置风格为圆形进度条
Window window = mProgressDialog.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.height=100;
//lp.horizontalMargin=10f;//设置框的位置离左边的距离
//lp.horizontalWeight=200f;//这个没试出效果
/*lp.alpha = 0.5f;// 透明度
lp.dimAmount = 0.8f;// 黑暗度 */
window.setAttributes(lp);
mProgressDialog.setMessage(“loading……”);
mProgressDialog.setIndeterminate(false);//设置进度条是否为不明确
mProgressDialog.setCancelable(true);//设置进度条是否可以按退回键取消
mProgressDialog.show();
/* 开启一个新线程,在新线程里执行耗时的方法 */
new Thread(new Runnable() {
@Override
public void run() {
spandTimeMethod();// 耗时的方法
handler.sendEmptyMessage(0);// 执行耗时的方法之后发送消给handler
}

}).start();
}
});

}

private void spandTimeMethod() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {// handler接收到消息后就会执行此方法
mProgressDialog.dismiss();// 关闭ProgressDialog
}
};
}
main.XML######################################################################################
< ?xml version="1.0" encoding="utf-8"?>

One Response To This Post So Far(Rss)

  1. 如何减肥 | #1
    2013 年 11 月 8 日 at 下午 2:22
Post a comment