package com.hdl.photovoltaic.widget; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.text.TextUtils; import android.text.method.HideReturnsTransformationMethod; import android.text.method.PasswordTransformationMethod; import android.view.View; import androidx.annotation.NonNull; import androidx.appcompat.content.res.AppCompatResources; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.databinding.LoadingConfirmInputBinding; /** * 输入确认框 */ public class ConfirmationInputDialog extends Dialog { public ConfirmationInputDialog(@NonNull Context context) { super(context, R.style.Custom_AlertDialog); this.mContext = context; } private final Context mContext; private onNoOnclickListener noOnclickListener;//取消按钮被点击了的监听器 private onYesOnclickListener yesOnclickListener;//确定按钮被点击了的监听器 private LoadingConfirmInputBinding viewBinding; private String titleStr, yesStr, noStr; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); viewBinding = LoadingConfirmInputBinding.inflate(getLayoutInflater()); setContentView(viewBinding.getRoot()); // setCancelable(true);//系统后退可以取消 //空白处不能取消动画 setCanceledOnTouchOutside(false); //初始化界面控件 initView(); //初始化界面数据 initData(); //初始化界面控件的事件 initEvent(); } /** * 自定义"标题"文本 * * @param title 内容 */ public void setTitle(String title) { if (TextUtils.isEmpty(title)) { return; } titleStr = title; } /** * 自定义"确认"文本 * * @param confirm 内容 */ public void setConfirmation(String confirm) { if (TextUtils.isEmpty(confirm)) { return; } yesStr = confirm; } /** * 自定义"取消"文本 * * @param cancel 内容 */ public void setCancel(String cancel) { if (TextUtils.isEmpty(cancel)) { return; } noStr = cancel; } private void initEvent() { viewBinding.dialogCancelLy.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (noOnclickListener != null) { noOnclickListener.Cancel(); } } }); viewBinding.dialogConfirmLy.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (yesOnclickListener != null) { yesOnclickListener.Confirm(viewBinding.loadingConfirmationInputEt.getText().toString()); } } }); viewBinding.loadingConfirmationClickTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.setSelected(!v.isSelected()); if (v.isSelected()) { viewBinding.loadingConfirmationInputEt.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); viewBinding.loadingConfirmationHideIv.setImageDrawable(AppCompatResources.getDrawable(mContext, R.drawable.show)); } else { viewBinding.loadingConfirmationInputEt.setTransformationMethod(PasswordTransformationMethod.getInstance()); viewBinding.loadingConfirmationHideIv.setImageDrawable(AppCompatResources.getDrawable(mContext, R.drawable.hide)); } //设置光标位置 viewBinding.loadingConfirmationInputEt.setSelection(viewBinding.loadingConfirmationInputEt.getText().length()); } }); } /** * 初始化界面控件的显示数据 */ private void initData() { //如果用户自定了title和message if (!TextUtils.isEmpty(titleStr)) { viewBinding.loadingConfirmationTitleTv.setText(titleStr); } //如果设置按钮文字 if (!TextUtils.isEmpty(yesStr)) { viewBinding.dialogConfirmTv.setText(yesStr); } if (!TextUtils.isEmpty(noStr)) { viewBinding.dialogCancelTv.setText(noStr); } } private void initView() { } /** * 设置取消按钮监听 * * @param onNoOnclickListener - */ public void setNoOnclickListener(onNoOnclickListener onNoOnclickListener) { if (onNoOnclickListener != null) { this.noOnclickListener = onNoOnclickListener; } } /** * 设置确定按钮监听 * * @param yesOnclickListener - */ public void setYesOnclickListener(onYesOnclickListener yesOnclickListener) { if (yesOnclickListener != null) { this.yesOnclickListener = yesOnclickListener; } } public interface onNoOnclickListener { void Cancel(); } public interface onYesOnclickListener { void Confirm(String str); } }