From f97ff347cc7d42c6511e3ebb4bfc23b119e1e445 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期一, 11 十二月 2023 18:24:30 +0800 Subject: [PATCH] 2023年12月11日18:23:44 --- app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java | 63 +++++++++++++++++++++---------- 1 files changed, 43 insertions(+), 20 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 cd25868..db80f22 100644 --- a/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java +++ b/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java @@ -3,6 +3,8 @@ import android.app.Dialog; import android.content.Context; import android.content.Intent; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.Gravity; import android.view.MotionEvent; @@ -10,12 +12,14 @@ import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; +import android.widget.LinearLayout; import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; import com.hdl.photovoltaic.HDLApp; 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.StartActivity; @@ -30,12 +34,12 @@ /** * 鍔ㄦ�佸垪琛ㄥ脊绐� */ -public class ListDialog extends Dialog { +public class ListDialog extends BaseDialog { private DialogListBinding viewBinding; private ListDialogAdapter listDialogAdapter; private final Context mContext; - private List<ListDialogAdapter.DialogItemData> list; + private List<LanguageAdapter.ItemData> list; private ListDialogAdapter.OnclickListener itemOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣� @@ -45,11 +49,28 @@ } @Override + protected void onStart() { + super.onStart(); + // 鑾峰彇绐楀彛瀵硅薄 + Window dialogWindow = this.getWindow(); + if (dialogWindow != null) { + // 鑾峰彇瀵硅瘽妗嗗綋鍓嶇殑鍙傛暟鍊� + WindowManager.LayoutParams p = dialogWindow.getAttributes(); + p.width = LinearLayout.LayoutParams.MATCH_PARENT; + p.height = LinearLayout.LayoutParams.WRAP_CONTENT; + p.gravity = Gravity.TOP; + // 璁剧疆鍒板睘鎬ч厤缃腑 + dialogWindow.setAttributes(p); + } + } + + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); viewBinding = DialogListBinding.inflate(getLayoutInflater()); setContentView(viewBinding.getRoot()); - setDialogTouchOutsideCloseable(this); + this.setCanceledOnTouchOutside(true); +// setDialogTouchOutsideCloseable(this); initData(); LinearLayoutManager linearLayout = new LinearLayoutManager(mContext); listDialogAdapter = new ListDialogAdapter(this.list, mContext); @@ -57,13 +78,17 @@ viewBinding.logicRcv.setAdapter(listDialogAdapter); listDialogAdapter.setItemOnclickListener(new ListDialogAdapter.OnclickListener() { @Override - public void onClick(int position, ListDialogAdapter.DialogItemData itemData) { + public void onClick(int position, LanguageAdapter.ItemData itemData) { for (int i = 0; i < list.size(); i++) { - ListDialogAdapter.DialogItemData data = list.get(i); + LanguageAdapter.ItemData data = list.get(i); data.setState(false); } list.get(position).setState(true); listDialogAdapter.notifyDataSetChanged(); + if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(itemData.getLanguage())) { + //鍚屼竴涓笉鎵ц寮圭獥 + return; + } languageSelectionDialog(position, itemData); } }); @@ -75,20 +100,9 @@ } private void initData() { - list = new ArrayList<>(); - ListDialogAdapter.DialogItemData zh = new ListDialogAdapter.DialogItemData(); - zh.setState(false); - zh.setTitle("绠�浣撲腑鏂�"); - zh.setLanguage(LocalManageUtil.zh); - list.add(zh); - ListDialogAdapter.DialogItemData en = new ListDialogAdapter.DialogItemData(); - en.setState(false); - en.setTitle("English"); - en.setLanguage(LocalManageUtil.en); - list.add(en); - + list = LocalManageUtil.getLanguageList(); for (int i = 0; i < list.size(); i++) { - ListDialogAdapter.DialogItemData itemData = list.get(i); + LanguageAdapter.ItemData itemData = list.get(i); if (itemData.getLanguage().equals(UserConfigManage.getInstance().getCurrentAppLanguage())) { //鍒濆鍖栦箣鍓嶇姸鎬� itemData.setState(true); @@ -102,7 +116,7 @@ * @param position 绱㈠紩鍊� * @param itemData 閫変腑鏁版嵁 */ - private void languageSelectionDialog(int position, ListDialogAdapter.DialogItemData itemData) { + private void languageSelectionDialog(int position, LanguageAdapter.ItemData itemData) { ConfirmationCancelDialog dialog = new ConfirmationCancelDialog(this.mContext); dialog.setTitle(this.mContext.getString(R.string.loading_title_tip)); dialog.setContent(this.mContext.getString(R.string.loading_app_restart)); @@ -125,12 +139,21 @@ 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(); } }); } - //瑙e喅dialog.setCanceledOnTouchOutside(true) 涓嶇敓鏁堥棶棰� + public void setDialogTouchOutsideCloseable(Dialog dialog) { viewBinding.getRoot().setOnTouchListener(new View.OnTouchListener() { @Override -- Gitblit v1.8.0