app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/hdl/photovoltaic/widget/TypeTitleListDialog.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/hdl/photovoltaic/widget/adapter/TypeListDialogAdapter.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/drawable/loading_ffffffff_4.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/activity_message_center_list.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/dialog_type_title_list.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/item_type_title.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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(); } }); //全部设备(全部设备、逆变器、BMS控制盒、电池单元)按钮 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 app/src/main/java/com/hdl/photovoltaic/widget/TypeTitleListDialog.java
New file @@ -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); } } app/src/main/java/com/hdl/photovoltaic/widget/adapter/TypeListDialogAdapter.java
New file @@ -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); } } app/src/main/res/drawable/loading_ffffffff_4.xml
New file @@ -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> 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" /> app/src/main/res/layout/dialog_type_title_list.xml
New file @@ -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> app/src/main/res/layout/item_type_title.xml
New file @@ -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>