package com.haicaojie.android.util; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; import com.lcjian.library.util.SystemCommon; import com.lcjian.library.util.common.StringUtils; import com.haicaojie.android.R; /** * Created by weikou2015 on 2017/2/28. */ public class VerificationCodeErrorDialog extends Dialog { public VerificationCodeErrorDialog(Context context) { super(context); this.setCancelable(false); } public VerificationCodeErrorDialog(Context context, int theme) { super(context, theme); this.setCancelable(false); } public static class Builder { private Context context; String message; String title; private String positiveButtonText; private String negativeButtonText; private OnClickListener positiveButtonClickListener; private OnClickListener negativeButtonClickListener; public Builder(Context context) { this.context = context; } public Builder setMessage(String message) { this.message = message; return this; } public Builder setTitle(String title) { this.title = title; return this; } /** * Set the positive button resource and it's listener * * @param positiveButtonText * @return */ public Builder setPositiveButton(int positiveButtonText, OnClickListener listener) { this.positiveButtonText = (String) context .getText(positiveButtonText); this.positiveButtonClickListener = listener; return this; } public Builder setPositiveButton(String positiveButtonText, OnClickListener listener) { this.positiveButtonText = positiveButtonText; this.positiveButtonClickListener = listener; return this; } public Builder setNegativeButton(int negativeButtonText, OnClickListener listener) { this.negativeButtonText = (String) context .getText(negativeButtonText); this.negativeButtonClickListener = listener; return this; } public Builder setNegativeButton(String negativeButtonText, OnClickListener listener) { this.negativeButtonText = negativeButtonText; this.negativeButtonClickListener = listener; return this; } public VerificationCodeErrorDialog create() { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // instantiate the dialog with the custom Theme final VerificationCodeErrorDialog dialog = new VerificationCodeErrorDialog(context, R.style.Dialog); View layout = inflater.inflate(R.layout.item_verification_code_error, null); dialog.addContentView(layout, new FrameLayout.LayoutParams( FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); TextView tv_title = (TextView) layout.findViewById(R.id.tv_title); TextView tv_content = (TextView) layout.findViewById(R.id.tv_content); TextView tv_confirm = (TextView) layout.findViewById(R.id.tv_confirm); if (!StringUtils.isEmpty(title)) tv_title.setText(title); if (!StringUtils.isEmpty(message)) tv_content.setText(message); // set the confirm button if (positiveButtonClickListener != null) { tv_confirm.setText(positiveButtonText); tv_confirm.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { positiveButtonClickListener.onClick(dialog, DialogInterface.BUTTON_POSITIVE); } }); } if (negativeButtonClickListener != null) { layout.findViewById(R.id.iv_cancle) .setOnClickListener(new View.OnClickListener() { public void onClick(View v) { negativeButtonClickListener.onClick(dialog, DialogInterface.BUTTON_NEGATIVE); } }); } dialog.setContentView(layout); android.view.WindowManager.LayoutParams params = dialog.getWindow() .getAttributes(); params.width = (int) ((SystemCommon.getScreenWidth(context) * 3) / 4); params.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT; dialog.getWindow().setAttributes(params); return dialog; } } }