前言:直接上使用语句
简单使用
// 展示例子1
LoadingDialogUtils.build(mActivity).setTag("MeFragment").show();
// 展示例子2
LoadingDialogUtils.build(mActivity).setTag("MeFragment").setMessage("等待中。。。").show();
// 隐藏并销毁,只有展示的时候设置了Tag,才能get到前面创建过的dialog
LoadingDialogUtils.get("MeFragment").dismiss();
代码如下:
也没啥技术含量
import android.app.Activity;
import android.app.ProgressDialog;
import java.util.HashMap;
import java.util.Map;
/**
* Created by 方毅超 on 2017/7/19.
* 数据加载框
*/
public class LoadingDialogUtils {
private static Map<Object, Imp> dialogMap = new HashMap<>();
/**
* 通过标签,获取已存在的dialog
*
* @param tag
* @return
*/
public static Imp get(Object tag) {
return dialogMap.get(tag);
}
/**
* 创建dialog
*
* @param act
* @return
*/
public static Imp build(Activity act) {
Imp imp = new Imp().init(act);
return imp;
}
/**
* dialog的实体操作类
*/
public static class Imp {
Object tag; // 标签,用于识别每一个不同的dialog
CharSequence message = "加载中...";
private ProgressDialog loadingDialog;
/**
* 设置标签,只有设置了标签,才能get到
*
* @param obj
* @return
*/
public Imp setTag(Object obj) {
tag = obj;
dialogMap.put(obj, this);
return this;
}
/**
* 初始化dialog
*
* @param act
* @return
*/
Imp init(Activity act) {
loadingDialog = new ProgressDialog(act);
loadingDialog.setMessage(message);
loadingDialog.setCancelable(false);
return this;
}
/**
* 设置提示文字
*
* @param message
* @return
*/
public Imp setMessage(CharSequence message) {
// this.message = message;
if (loadingDialog != null) {
loadingDialog.setMessage(message);
}
return this;
}
/**
* @param b
* @return
*/
public Imp setCancelable(boolean b) {
if (loadingDialog != null) {
loadingDialog.setCancelable(b);
}
return this;
}
/**
* 显示
*/
public void show() {
loadingDialog.show();
}
/**
* 隐藏并销毁
*/
public void dismiss() {
if (loadingDialog != null && loadingDialog.isShowing()) {
loadingDialog.dismiss();
dialogMap.remove(loadingDialog);
loadingDialog = null;
}
}
}
}