package com.hdl.photovoltaic.ui.newC.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.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; /** * 消息中心列表适配器 */ public class MessageCenterListAdapter extends RecyclerView.Adapter { private Context mContext; private List mList; public OnclickListener mOnClickListener; public MessageCenterListAdapter(Context context) { this.mContext = context; } @NonNull @Override public MessageCenterListAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(mContext).inflate(R.layout.item_message_c, parent, false); return new MessageCenterListAdapter.MyViewHolder(view); } @Override public void onBindViewHolder(@NonNull MessageCenterListAdapter.MyViewHolder holder, int position) { MessageBean messageBean = this.mList.get(position); holder.item_content_tv.setText(messageBean.getTitle()); String strName = getDeviceTypeStr(messageBean.getDeviceType()) + "(" + messageBean.getHomeName() + "_" + messageBean.getDeviceDesc() + ")"; 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.alarm_all_grade_warning); 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) { try { if (mOnClickListener != null) { mOnClickListener.onClick((int) holder.itemView.getTag(), messageBean); } } catch (Exception ignored) { } } }); } @Override public int getItemCount() { return this.mList == null ? 0 : this.mList.size(); } public void setList(List newData) { if (this.mList == null) { this.mList = new ArrayList<>(); } else { this.mList.clear(); } this.mList.addAll(newData); notifyDataSetChanged(); } /** * 通过枚举转换设备类型的字符 * * @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 ""; } } public void setNoOnclickListener(OnclickListener onClickListener) { this.mOnClickListener = onClickListener; } static class MyViewHolder extends RecyclerView.ViewHolder { public TextView item_content_tv; public TextView item_home_name_tv; public TextView item_time_tv; public TextView item_estate_tv; public TextView item_unread_message_tv; public MyViewHolder(@NonNull View itemView) { super(itemView); item_content_tv = itemView.findViewById(R.id.item_content_tv); item_home_name_tv = itemView.findViewById(R.id.item_home_name_tv); item_time_tv = itemView.findViewById(R.id.item_time_tv); item_estate_tv = itemView.findViewById(R.id.item_estate_tv); item_unread_message_tv = itemView.findViewById(R.id.item_unread_message_tv); } } public interface OnclickListener { void onClick(int position, MessageBean messageBean); } }