From a1ac20d9cbe90b566bffe3ed39a6e07700c3248f Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期一, 19 六月 2023 10:30:06 +0800 Subject: [PATCH] Merge branch 'wjc' --- app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 251 insertions(+), 0 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java new file mode 100644 index 0000000..27ee316 --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationInputDialog.java @@ -0,0 +1,251 @@ +package com.hdl.photovoltaic.widget; + +import android.app.Activity; +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 androidx.constraintlayout.widget.ConstraintSet; + +import com.hdl.photovoltaic.R; +import com.hdl.photovoltaic.databinding.LoadingConfirmInputBinding; +import com.hdl.photovoltaic.utils.KeyboardStateObserverUtils; + +/** + * 杈撳叆纭妗� + */ +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(); + //鍦ㄧ晫闈腑浣跨敤 + KeyboardStateObserverUtils.getKeyboardStateObserver((Activity) mContext).setKeyboardVisibilityListener(new KeyboardStateObserverUtils.OnKeyboardVisibilityListener() { + @Override + public void onKeyboardShow(int h) { + ConstraintSet cs = new ConstraintSet(); + cs.clone(viewBinding.loadingParentCl); +// (viewBinding.loadingConfirmationRl.getTop()-dip2px(h)) + + cs.connect(R.id.loading_confirmation_rl, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, px2dip(h));// + //搴旂敤绾︽潫 + cs.applyTo(viewBinding.loadingParentCl); + + +// FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) viewBinding.loadingParentCl.getLayoutParams(); +// lp.bottomMargin = px2dip(h); +// viewBinding.loadingParentCl.setLayoutParams(lp); + + + } + + @Override + + public void onKeyboardHide(int h) { + ConstraintSet cs = new ConstraintSet(); + cs.clone(viewBinding.loadingParentCl); + cs.connect(R.id.loading_confirmation_rl, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, px2dip(h));// + //搴旂敤绾︽潫 + cs.applyTo(viewBinding.loadingParentCl); + } + + }); + + + } + + /** + * 鑷畾涔�"鏍囬"鏂囨湰 + * + * @param title 鍐呭 + */ + public void setTitle(String title) { + if (TextUtils.isEmpty(title)) { + return; + } + titleStr = title; + if (viewBinding != null) { + viewBinding.loadingConfirmationTitleTv.setText(titleStr); + } + + } + + /** + * 鑷畾涔�"纭"鏂囨湰 + * + * @param confirm 鍐呭 + */ + public void setConfirmation(String confirm) { + if (TextUtils.isEmpty(confirm)) { + return; + } + yesStr = confirm; + + if (viewBinding != null) { + viewBinding.dialogConfirmTv.setText(yesStr); + } + + + } + + /** + * 鑷畾涔�"鍙栨秷"鏂囨湰 + * + * @param cancel 鍐呭 + */ + public void setCancel(String cancel) { + if (TextUtils.isEmpty(cancel)) { + return; + } + noStr = cancel; + + if (viewBinding != null) { + viewBinding.dialogCancelTv.setText(noStr); + } + } + + + 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() { + if (viewBinding == null) { + return; + } + //濡傛灉鐢ㄦ埛鑷畾浜唗itle鍜宮essage + 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); + } + + /** + * 鏍规嵁鎵嬫満鐨勫垎杈ㄧ巼浠� dp 鐨勫崟浣� 杞垚涓� px(鍍忕礌) + */ + private int dip2px(float dpValue) { + if (mContext == null) { + return 0; + } + final float scale = mContext.getResources().getDisplayMetrics().density; + return (int) (dpValue * scale + 0.5f); + } + + /** + * 鏍规嵁鎵嬫満鐨勫垎杈ㄧ巼浠� px(鍍忕礌) 鐨勫崟浣� 杞垚涓� dp + */ + private int px2dip(float pxValue) { + final float scale = mContext.getResources().getDisplayMetrics().density; + return (int) (pxValue / scale + 0.5f); + } + +} -- Gitblit v1.8.0