| | |
| | | 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.RelativeLayout; |
| | | 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.UnitType; |
| | | import com.hdl.photovoltaic.other.HdlCommonLogic; |
| | | import com.hdl.photovoltaic.ui.bean.DeviceBean; |
| | | import com.hdl.photovoltaic.widget.SwipeLayout; |
| | | import com.hdl.photovoltaic.ui.bean.CloudInverterDeviceBean; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | public class DeviceInfoAdapter extends RecyclerView.Adapter<DeviceInfoAdapter.MyViewHolder> { |
| | | |
| | | List<DeviceBean> mList; |
| | | List<CloudInverterDeviceBean> mList; |
| | | |
| | | Context mContext; |
| | | |
| | |
| | | |
| | | @Override |
| | | public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { |
| | | DeviceBean deviceBean = this.mList.get(position); |
| | | CloudInverterDeviceBean deviceBean = this.mList.get(position); |
| | | |
| | | holder.homeNameTv.setText(deviceBean.getHomeNameAndDeviceName()); |
| | | holder.device_details_sn_tv.setText(deviceBean.getOsn()); |
| | | holder.device_label_run_state_value_tv.setText(deviceBean.getSystemStatusDesc()); |
| | | holder.device_label_power_value_tv.setText(HdlCommonLogic.getConvertDoubleUnit(deviceBean.getPowerPvNow(), UnitType.kW)); |
| | | holder.device_label_day_value_tv.setText(HdlCommonLogic.getConvertDoubleUnit(deviceBean.getPowerPvNow(), UnitType.kWh)); |
| | | holder.device_label_power_value_tv.setText(HdlCommonLogic.convertDoubleValue(deviceBean.getOutputActivePower(), 1000)); |
| | | holder.device_label_power_unit.setText(HdlCommonLogic.convertUnit(deviceBean.getOutputActivePower(), UnitType.kW)); |
| | | holder.device_label_day_value_tv.setText(HdlCommonLogic.convertDoubleValue(deviceBean.getTotalElectricityPvToday())); |
| | | holder.device_label_day_unit.setText(HdlCommonLogic.convertUnit(deviceBean.getOutputActivePower(), UnitType.kWh)); |
| | | holder.device_label_location_tv.setText(deviceBean.getHomeAddress()); |
| | | |
| | | setTextViewStyle(holder.device_label_state_tv, deviceBean.getDeviceStatus()); |
| | | holder.itemView.setTag(position); |
| | | holder.itemView.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | |
| | | this.mOnclickListener = onClickListener; |
| | | } |
| | | |
| | | public void setList(List<DeviceBean> newData) { |
| | | public void setList(List<CloudInverterDeviceBean> newData) { |
| | | if (this.mList == null) { |
| | | this.mList = new ArrayList<>(); |
| | | } else { |
| | |
| | | |
| | | this.mList.addAll(newData); |
| | | notifyDataSetChanged(); |
| | | } |
| | | |
| | | /** |
| | | * 改变组件样式 |
| | | * |
| | | * @param textView 显示组件 |
| | | * @param state_value 设备状态(1:连接中,2:故障,3:正常(运行),4:离线) |
| | | */ |
| | | private void setTextViewStyle(TextView textView, int state_value) { |
| | | String text = mContext.getString(R.string.my_power_station_operation); |
| | | Drawable drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_ff38c494); |
| | | switch (state_value) { |
| | | case 1: { |
| | | text = mContext.getString(R.string.my_power_station_connecting); |
| | | drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_satte_ffb300); |
| | | } |
| | | break; |
| | | case 2: { |
| | | text = mContext.getString(R.string.my_power_station_malfunction); |
| | | drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_fff55252); |
| | | } |
| | | break; |
| | | case 3: { |
| | | text = mContext.getString(R.string.my_power_station_operation); |
| | | } |
| | | break; |
| | | case 4: { |
| | | text = mContext.getString(R.string.my_power_station_off_line); |
| | | drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_ffb9b9b9); |
| | | } |
| | | break; |
| | | |
| | | |
| | | } |
| | | // textView.setText(text); |
| | | textView.setBackground(drawable); |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | public TextView device_details_sn_tv;//mac |
| | | public TextView device_label_run_state_value_tv;//设备运行状态 |
| | | public TextView device_label_power_value_tv;//有功功率 |
| | | public TextView device_label_power_unit;//有功功率单位 |
| | | public TextView device_label_day_value_tv;//当日发电量 |
| | | public TextView device_label_day_unit;//当日发电量单位 |
| | | public TextView device_label_location_tv;//电站地址 |
| | | public TextView device_label_state_tv;//电站状态(连接中,运行,离线,故障); |
| | | public TextView device_label_state_tv;//设备状态(1:连接中,2:故障,3:正常(运行),4:离线) |
| | | |
| | | |
| | | public MyViewHolder(@NonNull View itemView) { |
| | | super(itemView); |
| | | device_icon_iv = itemView.findViewById(R.id.device_details_image_iv); |
| | | homeNameTv = itemView.findViewById(R.id.device_details_name_tv); |
| | | device_details_sn_tv = itemView.findViewById(R.id.device_details_sn_tv); |
| | | device_icon_iv = itemView.findViewById(R.id.home_image_iv); |
| | | homeNameTv = itemView.findViewById(R.id.home_name_tv); |
| | | device_details_sn_tv = itemView.findViewById(R.id.device_details_value_tv); |
| | | device_label_run_state_value_tv = itemView.findViewById(R.id.device_label_run_state_value_tv); |
| | | device_label_power_value_tv = itemView.findViewById(R.id.device_label_power_value_tv); |
| | | device_label_power_unit = itemView.findViewById(R.id.device_label_power_unit); |
| | | device_label_day_value_tv = itemView.findViewById(R.id.device_label_day_value_tv); |
| | | device_label_day_unit = itemView.findViewById(R.id.device_label_day_unit); |
| | | device_label_location_tv = itemView.findViewById(R.id.device_label_location_tv); |
| | | |
| | | device_label_state_tv = itemView.findViewById(R.id.device_label_state_tv); |
| | | device_label_state_tv = itemView.findViewById(R.id.device_state_tv); |
| | | |
| | | } |
| | | } |
| | | |
| | | public interface OnClickListener { |
| | | void onClick(int position, DeviceBean deviceBean); |
| | | void onClick(int position, CloudInverterDeviceBean deviceBean); |
| | | |
| | | } |
| | | } |