前言:直接上使用語句
簡單使用
// 展示例子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;
}
}
}
}