LoadingDialogUtils数据加载框

前言:直接上使用语句

简单使用

// 展示例子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;
            }
        }
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,984评论 25 709
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,560评论 11 349
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,260评论 19 139
  • 我不喜欢吃辣 来到陌生的城市 每道菜都有辣味 我必须吃辣 我不喜欢熬夜 换一份新的工作 每一晚都在加班 我必须加班...
    梅井阅读 1,504评论 0 0
  • 所有过去的过去的过去 都已成为今日的今日的今日 未来的未来的未来,你抓不住,少年
    浮力消声阅读 1,711评论 0 0

友情链接更多精彩内容