package com.ysh.wpc.appupdate.view; 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.ysh.wpc.appupdate.R; import com.ysh.wpc.appupdate.util.StringUtils; import com.ysh.wpc.appupdate.util.SystemCommon; /** * Created by weikou2015 on 2017/2/28. */ public class UnbindDialog extends Dialog { public UnbindDialog(Context context) { super(context); this.setCancelable(false); } public UnbindDialog(Context context, int theme) { super(context, theme); this.setCancelable(false); } public static class Builder { private Context context; private String positiveButtonText; private String negativeButtonText; private String title; private String message; private String cancel; private String confirm; 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 UnbindDialog create() { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // instantiate the dialog with the custom Theme final UnbindDialog dialog = new UnbindDialog(context, R.style.Dialog); View layout = inflater.inflate(R.layout.item_unbind, null); TextView tv_info = layout.findViewById(R.id.tv_info); TextView tv_login = layout.findViewById(R.id.tv_login); TextView tv_cancle = layout.findViewById(R.id.tv_cancle); tv_info.setText(message); dialog.addContentView(layout, new FrameLayout.LayoutParams( FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); // set the confirm button if (positiveButtonClickListener != null) { if (!StringUtils.isEmpty(positiveButtonText)) { tv_login.setText(positiveButtonText); } tv_login.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { positiveButtonClickListener.onClick(dialog, DialogInterface.BUTTON_POSITIVE); } }); } if (negativeButtonClickListener != null) { if (!StringUtils.isEmpty(negativeButtonText)) { tv_cancle.setText(negativeButtonText); } tv_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); dialog.setCanceledOnTouchOutside(false); return dialog; } } }