基于回调的等待对话框事件处理

我在开发项目时经常遇到时间不长但又不短的耗时操作,只有2,3秒的样子,最好是弹出体格等待的对话框,以便用户友好交互,于是,写了一个辅助类,来控制所有等待对话框的显示,基于回调来处理耗时的事件,下面是辅助类的代码:

public class ProgressDialogHelper {
//
private Context mContext;
// 等带对话框的标题
private String mTitle;
// 等待内容
private String mMessage;
// show
private final int SHOW = 1;
// dismiss
private final int DISMISS = 0;

public ProgressDialogHelper(Context mContext) {
this.mContext = mContext;
}

// 控制进度对话框的显示与消失
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case SHOW:
progressDialog = ProgressDialog
.show(mContext, mTitle, mMessage);
break;
case DISMISS:
progressDialog.dismiss();
break;
}
}
};
// 进度对话框
private ProgressDialog progressDialog = null;

/**
* 启用进度对话框
*
* @param title
* 进度框的标题
* @param message
* 进度框显示的内容
* @param callBack
* 回调的执行方法
*/
public void showProgressDialog(String title, String message,
final ProgressCallBack callBack) {
this.mTitle = title;
this.mMessage = message;
handler.sendEmptyMessage(SHOW);// 弹出对话框
new Thread() {
public void run() {
callBack.action();// 执行操作
handler.sendEmptyMessage(DISMISS);// 执行完毕,关闭对话框
}
}.start();
}

// 要在进度对话框显示时执行的操作
public interface ProgressCallBack {
public void action();
}

}

注释,都写的很清晰了,下面来看看如何使用这个辅助工具:

new ProgressDialogHelper(this).showProgressDialog("添加商品",
"正在提交商品信息", new ProgressCallBack() {
public void action() {
try {
// 模拟提交的耗时操作或调用别的方法
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});

这个有点长,但是还算便于理解.下面贴两张图来看效果:

[img]http://dl.iteye.com/upload/attachment/0067/5887/fec43d39-6386-3987-91f8-bc3a1c980048.png[/img]

[img]http://dl.iteye.com/upload/attachment/0067/5889/6655c2fa-51a5-3863-a4d4-28608d3bb408.png[/img]

写码笔记-欢迎交流
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值