From 3179371d3cb7e067937ae073c74a57bead023ba0 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 25 八月 2025 10:26:54 +0800
Subject: [PATCH] 2025年08月25日10:26:52
---
app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java | 185 ++++++++++++++++++++++++++++++---------------
1 files changed, 123 insertions(+), 62 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java
index 230b631..a6cc52c 100644
--- a/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java
+++ b/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java
@@ -1,96 +1,157 @@
package com.hdl.photovoltaic.widget;
+import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Context;
+import android.content.DialogInterface;
import android.os.Bundle;
+import android.view.Gravity;
import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
import com.hdl.photovoltaic.R;
+import com.hdl.photovoltaic.base.BaseDialog;
+import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.DialogListBinding;
+import com.hdl.photovoltaic.ui.adapter.LanguageAdapter;
+import com.hdl.photovoltaic.utils.LocalManageUtil;
+import com.hdl.photovoltaic.utils.UnitConversionUtils;
+import com.hdl.photovoltaic.widget.adapter.ListDialogAdapter;
-public class ListDialog extends Dialog {
- private onNoListener onNoOnclickListener;
- private onHDLChinaListener onHDLChinaListener;
- private onHDLBahrainListener onHDLBahrainListener;
+import java.util.List;
+
+
+/**
+ * 鍔ㄦ�佸垪琛ㄥ脊绐�
+ */
+public class ListDialog extends BaseDialog {
private DialogListBinding viewBinding;
+
+ private ListDialogAdapter listDialogAdapter;
+ private final Context mContext;
+ private List<LanguageAdapter.ItemData> list;
+
+ private ListDialogAdapter.OnclickListener itemOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣�
public ListDialog(@NonNull Context context) {
super(context, R.style.Custom_Dialog);
+ this.mContext = context;
}
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+
+ Window window = getWindow();
+ if (window != null) {
+ window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ WindowManager.LayoutParams layoutParams = window.getAttributes();
+ layoutParams.gravity = Gravity.START | Gravity.TOP;
+ layoutParams.width = (int) UnitConversionUtils.dpToPx(mContext, 140);
+ layoutParams.x = (int) UnitConversionUtils.dpToPx(mContext, 20);
+ layoutParams.y = (int) UnitConversionUtils.dpToPx(mContext, 89);
+ window.setAttributes(layoutParams);
+ }
+
viewBinding = DialogListBinding.inflate(getLayoutInflater());
setContentView(viewBinding.getRoot());
- initEvent();
-
- }
-
- public String geHDLChinaText(){
- return viewBinding.hdlChinaTv.getText().toString();
- };
- public String getHDLBahrainText(){
- return viewBinding.hdlBahrainTv.getText().toString();
-
- }
- private void initEvent() {
-
- viewBinding.hdlCancelLl.setOnClickListener(new View.OnClickListener() {
+ initData();
+ LinearLayoutManager linearLayout = new LinearLayoutManager(mContext);
+ listDialogAdapter = new ListDialogAdapter(this.list, mContext);
+ viewBinding.logicRcv.setLayoutManager(linearLayout);
+ viewBinding.logicRcv.setAdapter(listDialogAdapter);
+ listDialogAdapter.setItemOnclickListener(new ListDialogAdapter.OnclickListener() {
@Override
- public void onClick(View v) {
- if (onNoOnclickListener != null) {
- onNoOnclickListener.Cancel();
+ public void onClick(int position, LanguageAdapter.ItemData itemData) {
+ for (int i = 0; i < list.size(); i++) {
+ LanguageAdapter.ItemData data = list.get(i);
+ data.setState(false);
}
- dismiss();
- }
- });
- viewBinding.hdlChinaLl.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (onHDLChinaListener != null) {
- onHDLChinaListener.HDLChina();
+ list.get(position).setState(true);
+ listDialogAdapter.notifyDataSetChanged();
+ if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(itemData.getLanguage())) {
+ //鍚屼竴涓笉鎵ц寮圭獥
+ return;
}
- dismiss();
- }
- });
- viewBinding.hdlBahrainLl.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (onHDLBahrainListener != null) {
- onHDLBahrainListener.HDLBahrain();
- }
- dismiss();
+ languageSelectionDialog(position, itemData);
}
});
+ }
+
+ public void setItemOnclickListener(ListDialogAdapter.OnclickListener onclickListener) {
+ this.itemOnclickListener = onclickListener;
+ }
+
+ private void initData() {
+ list = LocalManageUtil.getLanguageList();
+ for (int i = 0; i < list.size(); i++) {
+ LanguageAdapter.ItemData itemData = list.get(i);
+ if (itemData.getLanguage().equals(UserConfigManage.getInstance().getCurrentAppLanguage())) {
+ //鍒濆鍖栦箣鍓嶇姸鎬�
+ itemData.setState(true);
+ }
+ }
+ }
+
+ /**
+ * 浜屾纭鎻愮ず妗�
+ *
+ * @param position 绱㈠紩鍊�
+ * @param itemData 閫変腑鏁版嵁
+ */
+ private void languageSelectionDialog(int position, LanguageAdapter.ItemData itemData) {
+
+ ConfirmationCancelDialog dialog = new ConfirmationCancelDialog(this.mContext);
+ dialog.setContent(this.mContext.getString(R.string.loading_app_restart));
+ dialog.show();
+ dialog.isHideTitle(true);
+ dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
+ @Override
+ public void Confirm() {
+ dialog.dismiss();
+ if (itemOnclickListener != null) {
+ itemOnclickListener.onClick(position, itemData);
+ }
+ }
+ });
+ dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
+ @Override
+ public void Cancel() {
+ //鍙栨秷涔嬪悗杩樺師涔嬪墠鐘舵��
+ for (int i = 0; i < list.size(); i++) {
+ LanguageAdapter.ItemData data = list.get(i);
+ data.setState(false);
+ if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(data.getLanguage())) {
+ data.setState(true);
+ }
+ }
+ listDialogAdapter.notifyDataSetChanged();
+ dialog.dismiss();
+ }
+ });
+ dialog.setOnDismissListener(new OnDismissListener() {
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ //鍙栨秷涔嬪悗杩樺師涔嬪墠鐘舵��
+ for (int i = 0; i < list.size(); i++) {
+ LanguageAdapter.ItemData data = list.get(i);
+ data.setState(false);
+ if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(data.getLanguage())) {
+ data.setState(true);
+ }
+ }
+ listDialogAdapter.notifyDataSetChanged();
+ }
+ });
}
- public void setNoOnListener(onNoListener onclickListener) {
- this.onNoOnclickListener = onclickListener;
- }
-
- public void setOnHDLChinaOnListener(onHDLChinaListener onHDLChinaListener) {
- this.onHDLChinaListener = onHDLChinaListener;
- }
-
- public void setOnHDLBahrainListener(onHDLBahrainListener onHDLBahrainListener) {
- this.onHDLBahrainListener = onHDLBahrainListener;
- }
-
- public interface onNoListener {
- void Cancel();
- }
-
- public interface onHDLChinaListener {
- void HDLChina();
- }
-
- public interface onHDLBahrainListener {
- void HDLBahrain();
- }
}
--
Gitblit v1.8.0