From b5b0b01715a4de1ea3cdf4804da46a546e4f9262 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期五, 08 三月 2024 11:54:46 +0800 Subject: [PATCH] 2024年03月08日11:54:38 --- app/src/main/java/com/hdl/photovoltaic/widget/adapter/TypeListDialogAdapter.java | 93 +++++++++++++++ app/src/main/res/layout/dialog_type_title_list.xml | 28 ++++ app/src/main/java/com/hdl/photovoltaic/widget/TypeTitleListDialog.java | 93 +++++++++++++++ app/src/main/res/drawable/loading_ffffffff_4.xml | 5 app/src/main/res/layout/item_type_title.xml | 42 +++++++ app/src/main/res/layout/activity_message_center_list.xml | 6 app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java | 61 ++++++++++ 7 files changed, 325 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java index e3a9210..e0cb207 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java @@ -22,6 +22,7 @@ import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.ui.bean.MessageBean; import com.hdl.photovoltaic.ui.newC.adapter.MessageCenterListAdapter; +import com.hdl.photovoltaic.widget.TypeTitleListDialog; import java.util.ArrayList; import java.util.List; @@ -72,6 +73,66 @@ finish(); } }); + + //鍏ㄩ儴璁惧(鍏ㄩ儴璁惧銆侀�嗗彉鍣ㄣ�丅MS鎺у埗鐩掋�佺數姹犲崟鍏�)鎸夐挳 + viewBinding.messageTabAllDeviceCl.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + List<String> stringList = new ArrayList<>(); + stringList.add(getString(R.string.alarm_all_device)); + stringList.add(getString(R.string.alarm_all_device_inverter)); + stringList.add(getString(R.string.alarm_all_device_bms)); + stringList.add(getString(R.string.alarm_all_device_battery_cell)); + TypeTitleListDialog typeTitleListDialog = new TypeTitleListDialog(_mActivity, stringList); + typeTitleListDialog.show(); + typeTitleListDialog.setOnListener(new TypeTitleListDialog.OnClickListener() { + @Override + public void onClick(int position, String title) { + + } + }); + } + }); + //鍏ㄩ儴绛夌骇(鏁呴殰銆佽鍛娿�佹彁绀�)鎸夐挳 + viewBinding.messageTabAllGradeCl.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + List<String> stringList = new ArrayList<>(); + stringList.add(getString(R.string.alarm_all_grade)); + stringList.add(getString(R.string.alarm_all_grade_malfunction)); + stringList.add(getString(R.string.alarm_all_grade_warning)); + stringList.add(getString(R.string.alarm_all_grade_tip)); + TypeTitleListDialog typeTitleListDialog = new TypeTitleListDialog(_mActivity, stringList); + typeTitleListDialog.show(); + typeTitleListDialog.setOnListener(new TypeTitleListDialog.OnClickListener() { + @Override + public void onClick(int position, String title) { + + } + }); + } + }); + //鍏ㄩ儴鏃堕棿(褰撳ぉ銆佽繎3澶┿�佽繎7澶┿�佽繎30澶�)鎸夐挳 + viewBinding.messageTabAllTimeCl.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + List<String> stringList = new ArrayList<>(); + stringList.add(getString(R.string.alarm_all_time)); + stringList.add(getString(R.string.alarm_all_time_same_day)); + stringList.add(getString(R.string.alarm_all_time_3)); + stringList.add(getString(R.string.alarm_all_time_7)); + stringList.add(getString(R.string.alarm_all_time_30)); + TypeTitleListDialog typeTitleListDialog = new TypeTitleListDialog(_mActivity, stringList); + typeTitleListDialog.show(); + typeTitleListDialog.setOnListener(new TypeTitleListDialog.OnClickListener() { + @Override + public void onClick(int position, String title) { + + } + }); + } + }); + //鎶ヨ璁惧鎸夐挳 viewBinding.messageBottomAlarmDeviceCl.setOnClickListener(new View.OnClickListener() { @Override diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/TypeTitleListDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/TypeTitleListDialog.java new file mode 100644 index 0000000..60bace3 --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/widget/TypeTitleListDialog.java @@ -0,0 +1,93 @@ +package com.hdl.photovoltaic.widget; + +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; + +import com.hdl.photovoltaic.R; +import com.hdl.photovoltaic.base.BaseDialog; +import com.hdl.photovoltaic.databinding.DialogTypeTitleListBinding; +import com.hdl.photovoltaic.widget.adapter.TypeListDialogAdapter; + +import java.util.List; + +public class TypeTitleListDialog extends BaseDialog { + + private OnClickListener mOnClickListener; + private DialogTypeTitleListBinding viewBinding; + + private TypeListDialogAdapter typeListDialogAdapter; + + private Context mContext; + + private List<String> mList; + + public TypeTitleListDialog(@NonNull Context context, List<String> list) { + super(context, R.style.Custom_Dialog); + this.mContext = context; + this.mList = list; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + viewBinding = DialogTypeTitleListBinding.inflate(getLayoutInflater()); + setContentView(viewBinding.getRoot()); + setDialogTouchOutsideCloseable(this); + LinearLayoutManager linearLayout = new LinearLayoutManager(mContext); + typeListDialogAdapter = new TypeListDialogAdapter(this.mList, mContext); + viewBinding.typeListRl.setLayoutManager(linearLayout); + viewBinding.typeListRl.setAdapter(typeListDialogAdapter); + typeListDialogAdapter.setItemOnclickListener(new TypeListDialogAdapter.OnclickListener() { + @Override + public void onClick(int position, String title) { + dismiss(); + if (mOnClickListener != null) { + mOnClickListener.onClick(position, title); + } + } + }); + + } + + @SuppressLint("ClickableViewAccessibility") + public void setDialogTouchOutsideCloseable(Dialog dialog) { + viewBinding.getRoot().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int top = viewBinding.typeParentCl.getTop(); + int left = viewBinding.typeParentCl.getLeft(); + int bottom = viewBinding.typeParentCl.getBottom(); + int right = viewBinding.typeParentCl.getRight(); + int y = (int) v.getY(); + int x = (int) v.getX(); + if (top < y && y < bottom) { + } else { + dismiss(); + } + if (left < x && x < right) { + + } else { + dismiss(); + } + + } + }); + } + + public void setOnListener(OnClickListener onClickListener) { + this.mOnClickListener = onClickListener; + } + + + public interface OnClickListener { + void onClick(int position, String title); + } + + +} diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/adapter/TypeListDialogAdapter.java b/app/src/main/java/com/hdl/photovoltaic/widget/adapter/TypeListDialogAdapter.java new file mode 100644 index 0000000..17e2409 --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/widget/adapter/TypeListDialogAdapter.java @@ -0,0 +1,93 @@ +package com.hdl.photovoltaic.widget.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.hdl.photovoltaic.R; + +import java.util.List; + +public class TypeListDialogAdapter extends RecyclerView.Adapter<TypeListDialogAdapter.MyViewHolder> { + + + private List<String> mList; + private final Context mContext; + private TypeListDialogAdapter.OnclickListener itemOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣� + + public TypeListDialogAdapter(List<String> list, Context context) { + + this.mList = list; + this.mContext = context; + } + + @NonNull + @Override + public TypeListDialogAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_type_title, parent, false); + return new TypeListDialogAdapter.MyViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull TypeListDialogAdapter.MyViewHolder holder, int position) { + String title = this.mList.get(position); + holder.type_title_tv.setText(title); + holder.itemView.setTag(position); + if (position == this.mList.size() - 1) { + holder.type_line_v.setVisibility(View.GONE); + } + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + try { + if (itemOnclickListener != null) { + itemOnclickListener.onClick((int) holder.itemView.getTag(), title); + } + } catch (Exception ignored) { + } + } + }); + + } + + @Override + public int getItemCount() { + return this.mList == null ? 0 : this.mList.size(); + } + + + public void setList(List<String> list) { + this.mList = list; + } + + public void setItemOnclickListener(TypeListDialogAdapter.OnclickListener onclickListener) { + this.itemOnclickListener = onclickListener; + } + + /** + * 涓�琛屽竷灞�瀹瑰櫒 + */ + static class MyViewHolder extends RecyclerView.ViewHolder { + + + public TextView type_title_tv; + + public View type_line_v; + + public MyViewHolder(@NonNull View itemView) { + super(itemView); + type_title_tv = itemView.findViewById(R.id.type_title_tv); + type_line_v = itemView.findViewById(R.id.type_line_v); + } + } + + public interface OnclickListener { + void onClick(int position, String title); + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/loading_ffffffff_4.xml b/app/src/main/res/drawable/loading_ffffffff_4.xml new file mode 100644 index 0000000..cd6b99a --- /dev/null +++ b/app/src/main/res/drawable/loading_ffffffff_4.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners android:radius="@dimen/dp_4" /> + <solid android:color="@color/text_FFFFFFFF" /> +</shape> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_message_center_list.xml b/app/src/main/res/layout/activity_message_center_list.xml index c19cd38..96e3c89 100644 --- a/app/src/main/res/layout/activity_message_center_list.xml +++ b/app/src/main/res/layout/activity_message_center_list.xml @@ -50,7 +50,7 @@ android:layout_width="@dimen/dp_10" android:layout_height="@dimen/dp_10" android:layout_marginStart="@dimen/dp_7" - android:background="@drawable/down" + android:background="@drawable/up" app:layout_constraintBottom_toBottomOf="@+id/all_device_title_tv" app:layout_constraintStart_toEndOf="@+id/all_device_title_tv" app:layout_constraintTop_toTopOf="@+id/all_device_title_tv" /> @@ -81,7 +81,7 @@ android:layout_width="@dimen/dp_10" android:layout_height="@dimen/dp_10" android:layout_marginStart="@dimen/dp_7" - android:background="@drawable/down" + android:background="@drawable/up" app:layout_constraintBottom_toBottomOf="@+id/all_grade_title_tv" app:layout_constraintStart_toEndOf="@+id/all_grade_title_tv" app:layout_constraintTop_toTopOf="@+id/all_grade_title_tv" /> @@ -111,7 +111,7 @@ android:id="@+id/all_time_title_iv" android:layout_width="@dimen/dp_10" android:layout_height="@dimen/dp_10" - android:background="@drawable/down" + android:background="@drawable/up" app:layout_constraintBottom_toBottomOf="@+id/all_time_title_tv" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@+id/all_time_title_tv" /> diff --git a/app/src/main/res/layout/dialog_type_title_list.xml b/app/src/main/res/layout/dialog_type_title_list.xml new file mode 100644 index 0000000..67cb300 --- /dev/null +++ b/app/src/main/res/layout/dialog_type_title_list.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/type_parent_cl" + android:layout_width="match_parent" + android:layout_height="match_parent" + + > + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/dialog_parent_cl" + android:layout_width="match_parent" + android:layout_height="270dp" + android:layout_marginStart="@dimen/dp_16" + android:layout_marginTop="113dp" + android:layout_marginEnd="@dimen/dp_16" + android:background="@drawable/loading_ffffffff_4" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/type_list_rl" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> + +</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/item_type_title.xml b/app/src/main/res/layout/item_type_title.xml new file mode 100644 index 0000000..8e61c18 --- /dev/null +++ b/app/src/main/res/layout/item_type_title.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="54dp" + android:layout_marginStart="@dimen/dp_32" + android:layout_marginEnd="@dimen/dp_32"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginStart="@dimen/dp_16" + android:layout_marginEnd="@dimen/dp_16" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="parent"> + + <TextView + android:id="@+id/type_title_tv" + android:layout_width="match_parent" + android:layout_height="@dimen/dp_20" + android:textColor="@color/text_90000000" + android:textSize="@dimen/text_14" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + + /> + + <View + android:id="@+id/type_line_v" + android:layout_width="match_parent" + android:layout_height="0.5dp" + android:layout_marginBottom="0.5dp" + android:background="@color/text_EDEFF2" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintEnd_toStartOf="parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> + +</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file -- Gitblit v1.8.0