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 | 74 +++++++++++++++++++++++++++---------- 1 files changed, 54 insertions(+), 20 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 55a9cf4..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 @@ -5,6 +5,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; @@ -12,10 +13,12 @@ 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; public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MyViewHolder> { @@ -23,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; } @@ -41,32 +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()); - String date = TimeUtils.getDateTimestamp(messageBean.getCreateTime()); + 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.state_ffb300); + 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.state_e34343); + 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.state_ffb300); + drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_satte_ffb300); } else if (messageBean.getType().equals(MessageAlarmStateType.event)) { - type = "浜嬩欢"; - drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_ffb300); + 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.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) { } } }); @@ -79,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; } /** @@ -107,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