ConfirmDialog.java 2.76 KB
package com.studymachine.www.ui.dialog;

import android.content.Context;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.annotation.Nullable;
import androidx.annotation.StringRes;

import com.hjq.base.BaseDialog;
import com.studymachine.www.R;
import com.studymachine.www.aop.SingleClick;

/**
 *    
 *
 *    time   : 2018/12/2
 *    desc   : 消息对话框
 */
public final class ConfirmDialog {

    public static final class Builder
            extends BaseDialog.Builder<UpdateDialog.Builder> {

        @Nullable
        private OnListener mListener;

        private final TextView mMessageView;
        private final Button mConfirmBtn,mCancelBtn;

        public Builder(Context context) {
            super(context);
            setContentView(R.layout.confirm_dialog);
            setAnimStyle(BaseDialog.ANIM_DEFAULT);
            mMessageView = findViewById(R.id.tv_message_message);
            mConfirmBtn = findViewById(R.id.tv_ui_confirm);
            mCancelBtn = findViewById(R.id.tv_ui_cancel);

            setOnClickListener(mConfirmBtn,mCancelBtn);
        }
        public Builder setTitle(@StringRes int id) {
           return setTitle(getString(id));
        }

        public Builder setTitle(String title){
             mMessageView.setText(title);
            return this;
        }

        public Builder setCancelText(String title){
            mCancelBtn.setText(title);
            return this;
        }
        public Builder setConfirmText(String title){
            mConfirmBtn.setText(title);
            return this;
        }

        public Builder setListener(OnListener listener) {
            mListener = listener;
            return this;
        }

        @Override
        public BaseDialog create() {
            // 如果内容为空就抛出异常
            if ("".equals(mMessageView.getText().toString())) {
                throw new IllegalArgumentException("Dialog message not null");
            }
            return super.create();
        }

        @SingleClick
        @Override
        public void onClick(View view) {
            if (view == mConfirmBtn) {
                if (mListener == null) {
                    return;
                }
                mListener.onConfirm(getDialog());
                dismiss();

            } else if (view == mCancelBtn) {
                if (mListener == null) {
                    return;
                }
                mListener.onCancel(getDialog());
                dismiss();

            }
        }
    }

    public interface OnListener {

        /**
         * 点击确定时回调
         */
        void onConfirm(BaseDialog dialog);

        /**
         * 点击取消时回调
         */
        void onCancel(BaseDialog dialog);
    }
}