New file |
| | |
| | | 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<SearchMessageAdapter.MyViewHolder> { |
| | | |
| | | List<MessageBean> 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<MessageBean> 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); |
| | | |
| | | } |
| | | } |