From a77dcb0250488ca6567490ed9fb5ce969bf41db7 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 29 五月 2024 14:55:03 +0800 Subject: [PATCH] Merge branch 'wjc_new' into feature/hxb --- app/src/main/java/com/hdl/photovoltaic/ui/adapter/DeviceInfoAdapter.java | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 161 insertions(+), 0 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/DeviceInfoAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/DeviceInfoAdapter.java new file mode 100644 index 0000000..c8c6074 --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/DeviceInfoAdapter.java @@ -0,0 +1,161 @@ +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.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.CloudInverterDeviceBean; + +import java.util.ArrayList; +import java.util.List; + +public class DeviceInfoAdapter extends RecyclerView.Adapter<DeviceInfoAdapter.MyViewHolder> { + + List<CloudInverterDeviceBean> mList; + + Context mContext; + + OnClickListener mOnclickListener; + + public DeviceInfoAdapter(Context context) { + + this.mContext = context; + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View contentItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_device_details, parent, false); + return new MyViewHolder(contentItem); + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { + CloudInverterDeviceBean deviceBean = this.mList.get(position); + + holder.homeNameTv.setText(deviceBean.getHomeNameAndDeviceName()); + holder.device_details_sn_tv.setText("SN:"+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_location_tv.setText(deviceBean.getHomeAddress()); + setTextViewStyle(holder.device_label_state_tv, deviceBean.getDeviceStatus()); + 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(), deviceBean); + } + } 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<CloudInverterDeviceBean> newData) { + if (this.mList == null) { + this.mList = new ArrayList<>(); + } else { + this.mList.clear(); + } + + this.mList.addAll(newData); + notifyDataSetChanged(); + } + + /** + * 鏀瑰彉缁勪欢鏍峰紡 + * + * @param textView 鏄剧ず缁勪欢 + * @param state_value 璁惧鐘舵��(1:杩炴帴涓�,2:鏁呴殰,3:姝e父(杩愯),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.state_06b92a); + switch (state_value) { + case 1: { + text = mContext.getString(R.string.my_power_station_connecting); + drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_ffb300); + } + break; + case 2: { + text = mContext.getString(R.string.my_power_station_malfunction); + drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_e34343); + } + 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.state_b9b9b9); + } + break; + + + } + textView.setText(text); + textView.setBackground(drawable); + + + } + + /** + * 涓�琛屽竷灞�瀹瑰櫒 + */ + static class MyViewHolder extends RecyclerView.ViewHolder { + + public ImageView device_icon_iv;//璁惧鍥剧墖 + public TextView homeNameTv;//浣忓畢鍚嶇О + 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_day_value_tv;//褰撴棩鍙戠數閲� + public TextView device_label_location_tv;//鐢电珯鍦板潃 + public TextView device_label_state_tv;//璁惧鐘舵��(1:杩炴帴涓�,2:鏁呴殰,3:姝e父(杩愯),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_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_day_value_tv = itemView.findViewById(R.id.device_label_day_value_tv); + device_label_location_tv = itemView.findViewById(R.id.device_label_location_tv); + + device_label_state_tv = itemView.findViewById(R.id.device_label_state_tv); + + } + } + + public interface OnClickListener { + void onClick(int position, CloudInverterDeviceBean deviceBean); + + } +} -- Gitblit v1.8.0