Android中对话框的工具类

Android中对话框的工具类,里面总结了比较好用的方法,直接调用即可

public class DialogUtils {

    private DialogUtils() {

    }

    private static AlertDialog mTipsDialog;
    private static ProgressDialog mProgressDialog = null;

    private static final String DIALOG_UTIL_TAG = "DialogUtils ";

    // 弹窗提示信息
    public static void showHintDialog(Context context, String title, String tips) {
        LinearLayout layout_dialog = new LinearLayout(context);
        layout_dialog.setOrientation(LinearLayout.VERTICAL);
        // 标题
        TextView tv_title = new TextView(context);
        LinearLayout.LayoutParams para_tv = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        tv_title.setLayoutParams(para_tv);
        tv_title.setGravity(Gravity.CENTER);
        tv_title.setTextSize(15);
        tv_title.setPadding(ScaleUtils.dip2px(context, 10), ScaleUtils.dip2px(context, 10), ScaleUtils.dip2px(context, 10), ScaleUtils.dip2px(context, 10));
        layout_dialog.setGravity(Gravity.CENTER_VERTICAL);
        // 间隔线
        int mWidth = DisplaySizeUtils.getDisplaySizeInfo(context).x;
        TextView mDiv_Line_tip = new TextView(context);
        mDiv_Line_tip.setWidth(mWidth - ScaleUtils.dip2px(context, 10));
        mDiv_Line_tip.setHeight(ScaleUtils.dip2px(context, 0.75f));
        mDiv_Line_tip.setBackgroundColor(Color.parseColor("#D1D3D5"));
        tv_title.setText(title);
        if (title != null) {
            layout_dialog.addView(tv_title);
            layout_dialog.addView(mDiv_Line_tip);
        }
        // 提示信息
        TextView tv_content = new TextView(context);
        tv_content.setLayoutParams(para_tv);
        tv_content.setTextSize(13);
        tv_content.setPadding(ScaleUtils.dip2px(context, 10), ScaleUtils.dip2px(context, 10), ScaleUtils.dip2px(context, 10), ScaleUtils.dip2px(context, 10));
        tv_content.setText(tips);
        layout_dialog.addView(tv_content);
        layout_dialog.setGravity(Gravity.CENTER_VERTICAL);
        //确认按钮
        TextView tv_conferm = new TextView(context);
        LinearLayout.LayoutParams para_tv1 = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, ScaleUtils.dip2px(context, 50));
        tv_conferm.setText("知道了");
        tv_conferm.setLayoutParams(para_tv1);
        tv_conferm.setTextSize(17);
        tv_conferm.setTextColor(Color.WHITE);
        tv_conferm.setBackgroundColor(Color.parseColor("#398DEE"));
        tv_conferm.setGravity(Gravity.CENTER);
        tv_conferm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                mTipsDialog.dismiss();
            }
        });

        layout_dialog.addView(tv_conferm);
        mTipsDialog = new AlertDialog.Builder(context).setView(layout_dialog).create();
        mTipsDialog.setCancelable(false);
        mTipsDialog.setCanceledOnTouchOutside(false);
        mTipsDialog.show();
    }

    /**
     * 显示Dialog
     * @param context 上下文
     * @param isCCancel 是否点击Dialog边缘取消Dialog
     */
    public static void showProgressDialog(Context context, boolean isCCancel) {
        if (null == mProgressDialog) {
            mProgressDialog = new ProgressDialog(context);
            mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            mProgressDialog.setIndeterminate(false); // 设置ProgressDialog 的进度条是否不明确
            mProgressDialog.setMessage("正在加载...");
            mProgressDialog.setCancelable(isCCancel); // 设置ProgressDialog是否可以按退回按键取消
            mProgressDialog.setCanceledOnTouchOutside(isCCancel);//设置ProgressDialog是否可以点击非窗口区域取消
        }
        mProgressDialog.show();
    } /**
     * 显示Dialog
     * @param context 上下文
     * @param msg 弹框要显示的文本信息
     * @param isCCancel 是否点击Dialog边缘取消Dialog
     */
    public static void showProgressDialog(Context context,String msg, boolean isCCancel) {
        if (null == mProgressDialog) {
            mProgressDialog = new ProgressDialog(context);
            mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            mProgressDialog.setIndeterminate(false); // 设置ProgressDialog 的进度条是否不明确
            mProgressDialog.setMessage(msg);
            mProgressDialog.setCancelable(isCCancel); // 设置ProgressDialog是否可以按退回按键取消
            mProgressDialog.setCanceledOnTouchOutside(isCCancel);//设置ProgressDialog是否可以点击非窗口区域取消
        }
        mProgressDialog.show();
    }

    /**
     * 隐藏Dialog
     * 由于统一管理Dialog,注意Activity/Fragment生命周期对它的影响
     */
    public static void hideProgressDialog() {
        if (null != mProgressDialog) {
            if (mProgressDialog.isShowing()) {
                mProgressDialog.dismiss();
            }
            mProgressDialog = null;
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值