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.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.MessageAlarmStateType; import com.hdl.photovoltaic.ui.bean.MessageBean; import com.hdl.photovoltaic.utils.TimeUtils; import java.util.ArrayList; import java.util.List; /** * 搜索消息适配器 */ public class SearchMessageAdapter extends RecyclerView.Adapter { List mList; Context mContext; OnClickListener mOnclickListener; public SearchMessageAdapter(Context context) { this.mContext = context; } @NonNull @Override public SearchMessageAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View contentItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_search_message, parent, false); return new SearchMessageAdapter.MyViewHolder(contentItem); } @Override public void onBindViewHolder(@NonNull SearchMessageAdapter.MyViewHolder itemHolder, int position) { MessageBean messageBean = this.mList.get(position); itemHolder.message_name_tv.setText(messageBean.getTitle()); itemHolder.message_content_tv.setText(messageBean.getHomeName()); String date = TimeUtils.getTimeFromTimestamp(messageBean.getCreateTime()); itemHolder.message_time_tv.setText(date); String type = "";//FAULT:故障,WARN:告警,EVENT:提示 Drawable drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_ffb300); if (messageBean.getType().equals(MessageAlarmStateType.fault)) { type = mContext.getString(R.string.my_power_station_malfunction); drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_e34343); } else if (messageBean.getType().equals(MessageAlarmStateType.warn)) { type = mContext.getString(R.string.message_alarm); drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_ffb300); } else if (messageBean.getType().equals(MessageAlarmStateType.event)) { type = mContext.getString(R.string.loading_title_tip); drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_b9b9b9); } itemHolder.message_state_tv.setText(type); itemHolder.message_state_tv.setBackground(drawable); itemHolder.itemView.setTag(position); itemHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { if (mOnclickListener != null) { mOnclickListener.onClick((int) itemHolder.itemView.getTag(), messageBean); } } catch (Exception ignored) { } } }); } @Override public int getItemCount() { return this.mList == null ? 0 : this.mList.size(); } public void setOnclickListener(OnClickListener onClickListener) { this.mOnclickListener = onClickListener; } public void setList(List newData) { if (this.mList == null) { this.mList = new ArrayList<>(); } else { this.mList.clear(); } this.mList.addAll(newData); notifyDataSetChanged(); } /** * 一行布局容器 */ static class MyViewHolder extends RecyclerView.ViewHolder { public TextView message_name_tv; public TextView message_content_tv; public TextView message_time_tv; public TextView message_state_tv; public MyViewHolder(@NonNull View itemView) { super(itemView); message_name_tv = itemView.findViewById(R.id.message_name_tv); message_content_tv = itemView.findViewById(R.id.message_content_tv); message_time_tv = itemView.findViewById(R.id.message_time_tv); message_state_tv = itemView.findViewById(R.id.message_state_tv); } } public interface OnClickListener { void onClick(int position, MessageBean messageBean); } }