LoadingDialogUtils數(shù)據(jù)加載框

前言:直接上使用語(yǔ)句

簡(jiǎn)單使用

// 展示例子1
LoadingDialogUtils.build(mActivity).setTag("MeFragment").show(); 
// 展示例子2
LoadingDialogUtils.build(mActivity).setTag("MeFragment").setMessage("等待中。。。").show();
// 隱藏并銷毀,只有展示的時(shí)候設(shè)置了Tag,才能get到前面創(chuàng)建過(guò)的dialog
LoadingDialogUtils.get("MeFragment").dismiss();

代碼如下:

也沒(méi)啥技術(shù)含量

import android.app.Activity;
import android.app.ProgressDialog;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by 方毅超 on 2017/7/19.
 * 數(shù)據(jù)加載框
 */
public class LoadingDialogUtils {

    private static Map<Object, Imp> dialogMap = new HashMap<>();

    /**
     * 通過(guò)標(biāo)簽,獲取已存在的dialog
     *
     * @param tag
     * @return
     */
    public static Imp get(Object tag) {
        return dialogMap.get(tag);
    }


    /**
     * 創(chuàng)建dialog
     *
     * @param act
     * @return
     */
    public static Imp build(Activity act) {
        Imp imp = new Imp().init(act);
        return imp;
    }


    /**
     * dialog的實(shí)體操作類
     */
    public static class Imp {
        Object tag; // 標(biāo)簽,用于識(shí)別每一個(gè)不同的dialog
        CharSequence message = "加載中...";
        private ProgressDialog loadingDialog;

        /**
         * 設(shè)置標(biāo)簽,只有設(shè)置了標(biāo)簽,才能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;
        }

        /**
         * 設(shè)置提示文字
         *
         * @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;
            }
        }
    }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,917評(píng)論 25 709
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,787評(píng)論 11 349
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,535評(píng)論 19 139
  • 我不喜歡吃辣 來(lái)到陌生的城市 每道菜都有辣味 我必須吃辣 我不喜歡熬夜 換一份新的工作 每一晚都在加班 我必須加班...
    梅井閱讀 219評(píng)論 0 0
  • 所有過(guò)去的過(guò)去的過(guò)去 都已成為今日的今日的今日 未來(lái)的未來(lái)的未來(lái),你抓不住,少年
    浮力消聲閱讀 263評(píng)論 0 0

友情鏈接更多精彩內(nèi)容