package com.hjx.parent.dialog; import android.content.Context; import android.view.View; import androidx.annotation.NonNull; import com.hjx.parent.databinding.DialogMessageConfirmBinding; import com.hjx.parent.function.Function10; public class MsgConfirmDialog extends BaseDialog{ private CharSequence title, message, positive, negative; private Function10 positiveClick, negativeClick; private MsgConfirmDialog(Builder builder) { super(builder.context); title = builder.title; message = builder.message; positive = builder.positive; negative = builder.negative; positiveClick = builder.positiveClick; negativeClick = builder.negativeClick; } @Override public void initView() { binding.tvTitle.setText(title); binding.tvMessage.setText(message); binding.btnPositive.setText(positive); binding.btnNegative.setText(negative); binding.btnPositive.setOnClickListener(v -> { if (positiveClick != null) { if (positiveClick.invoke()) dismiss(); } else { dismiss(); } }); binding.btnNegative.setOnClickListener(v -> { if (negativeClick != null) { if (negativeClick.invoke()) dismiss(); } else { dismiss(); } }); if (positive == null || positive.length() == 0) { binding.btnPositive.setVisibility(View.GONE); } if (negative == null || negative.length() == 0) { binding.btnNegative.setVisibility(View.GONE); } } public void show(Function10 positiveClick, Function10 negativeClick) { this.positiveClick = positiveClick; this.negativeClick = negativeClick; super.show(); } @NonNull @Override public DialogMessageConfirmBinding getBinding() { return DialogMessageConfirmBinding.inflate(getLayoutInflater()); } public static class Builder { public Builder(Context context) { this.context = context; } private Context context; private CharSequence title = "温馨提示"; private CharSequence message = ""; private CharSequence positive = "确定"; private CharSequence negative = "取消"; private Function10 positiveClick = () -> true; private Function10 negativeClick = () -> true; public Builder setTitle(CharSequence title) { this.title = title; return this; } public Builder setMessage(CharSequence message) { this.message = message; return this; } public Builder setPositive(CharSequence positive) { this.positive = positive; return this; } public Builder setNegative(CharSequence negative) { this.negative = negative; return this; } public Builder setPositiveClick(Function10 positiveClick) { this.positiveClick = positiveClick; return this; } public Builder setNegativeClick(Function10 negativeClick) { this.negativeClick = negativeClick; return this; } public MsgConfirmDialog build() { return new MsgConfirmDialog(this); } } }