From 3ccff7173fb73322f7785d8eaedc90a1b5d8765d Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期二, 10 十二月 2024 22:44:03 +0800 Subject: [PATCH] 2024年12月10日22:43:59 --- app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java | 78 ++++++++++++++++++++++++++++++++------- 1 files changed, 64 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java index 6ce4bb5..7ca2b67 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java @@ -1,16 +1,22 @@ package com.hdl.photovoltaic.ui.adapter; import android.content.Context; +import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.appcompat.content.res.AppCompatResources; import androidx.recyclerview.widget.RecyclerView; import com.hdl.photovoltaic.R; +import com.hdl.photovoltaic.enums.DeviceType; +import com.hdl.photovoltaic.enums.MessageAlarmStateType; import com.hdl.photovoltaic.ui.bean.MessageBean; +import com.hdl.photovoltaic.utils.TimeUtils; import java.util.ArrayList; import java.util.List; @@ -20,11 +26,9 @@ private List<MessageBean> mList; private final Context mContext; - private MessageAdapter.OnclickListener noOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣� + private OnClickListener mOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣� - public MessageAdapter(List<MessageBean> list, Context context) { - - mList = list; + public MessageAdapter(Context context) { this.mContext = context; } @@ -38,19 +42,39 @@ @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { MessageBean messageBean = this.mList.get(position); + String strName = getDeviceTypeStr(messageBean.getDeviceType()) + "(" + messageBean.getHomeName()+"_"+messageBean.getDeviceDesc() + ")"; holder.item_content_tv.setText(messageBean.getTitle()); - holder.item_home_name_tv.setText(messageBean.getHomeName()); - holder.item_time_tv.setText(messageBean.getCreateTime() + ""); - holder.item_estate_tv.setText(messageBean.getStatus() + ""); + holder.item_home_name_tv.setText(strName); + String date = TimeUtils.getTimeFromTimestamp(messageBean.getCreateTime()); + holder.item_time_tv.setText(date); + String type = "";//FAULT:鏁呴殰,WARN:鍛婅,EVENT:鎻愮ず + Drawable drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_satte_ffb300); + if (messageBean.getType().equals(MessageAlarmStateType.fault)) { + type = mContext.getString(R.string.my_power_station_malfunction); + drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_fff55252); + } else if (messageBean.getType().equals(MessageAlarmStateType.warn)) { + type = mContext.getString(R.string.message_alarm); + drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_satte_ffb300); + } else if (messageBean.getType().equals(MessageAlarmStateType.event)) { + type = mContext.getString(R.string.loading_title_tip); + drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_ffb9b9b9); + } +// holder.item_estate_tv.setText(type); + holder.item_estate_tv.setBackground(drawable); holder.item_unread_message_tv.setVisibility(View.VISIBLE); if (messageBean.isRead()) { holder.item_unread_message_tv.setVisibility(View.GONE); } + //鏍囪绱㈠紩 + holder.itemView.setTag(position); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (noOnclickListener != null) { - noOnclickListener.onClick(holder.getAdapterPosition(), messageBean); + try { + if (mOnclickListener != null) { + mOnclickListener.onClick((int) holder.itemView.getTag(), messageBean); + } + } catch (Exception ignored) { } } }); @@ -63,12 +87,19 @@ } - public void setList(List<MessageBean> list) { - this.mList = list; + public void setList(List<MessageBean> newData) { + if (this.mList == null) { + this.mList = new ArrayList<>(); + } else { + this.mList.clear(); + } + + this.mList.addAll(newData); + notifyDataSetChanged(); } - public void setNoOnclickListener(MessageAdapter.OnclickListener onclickListener) { - this.noOnclickListener = onclickListener; + public void setOnclickListener(OnClickListener onClickListener) { + this.mOnclickListener = onClickListener; } /** @@ -91,8 +122,27 @@ } } - public interface OnclickListener { + public interface OnClickListener { void onClick(int position, MessageBean messageBean); } + /** + * 閫氳繃鏋氫妇杞崲璁惧绫诲瀷鐨勫瓧绗� + * + * @param deviceType //璁惧绫诲瀷(INV 锛� 閫嗗彉鍣�, BMS 锛� BMS鎺у埗鐩�, BATTERY 锛� 鐢垫睜鍗曞厓) + * @return 璁惧绫诲瀷 + */ + private String getDeviceTypeStr(String deviceType) { + switch (deviceType) { + case DeviceType.inv: + return mContext.getString(R.string.alarm_all_device_inverter); + case DeviceType.bms: + return mContext.getString(R.string.alarm_all_device_bms); + case DeviceType.battery: + return mContext.getString(R.string.alarm_all_device_battery_cell); + default: + return ""; + } + } + } -- Gitblit v1.8.0