From 3e904bfa8a1bb53dcf461e5c717f9b808e179245 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 08 一月 2025 16:27:48 +0800
Subject: [PATCH] 2025年01月08日16:27:46
---
app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 212 insertions(+), 15 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
index 5ad6ee2..8a06523 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
@@ -1,38 +1,123 @@
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.LinearLayout;
+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.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.hdl.photovoltaic.R;
-import com.hdl.photovoltaic.ui.bean.HouseInfoBean;
+import com.hdl.photovoltaic.enums.PowerStationStatus;
+import com.hdl.photovoltaic.enums.UnitType;
+import com.hdl.photovoltaic.other.HdlCommonLogic;
+import com.hdl.photovoltaic.other.HdlDeviceLogic;
+import com.hdl.photovoltaic.other.HdlLogLogic;
+import com.hdl.photovoltaic.ui.bean.HouseIdBean;
+import com.hdl.photovoltaic.utils.GlideUtils;
+import com.hdl.photovoltaic.widget.SwipeLayout;
+import java.util.ArrayList;
import java.util.List;
+
public class HouseInfoAdapter extends RecyclerView.Adapter<HouseInfoAdapter.MyViewHolder> {
- private List<HouseInfoBean> mList;
+ private List<HouseIdBean> mList;
+ private final Context mContext;
+ private OnclickListener noOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣�
- public HouseInfoAdapter(List<HouseInfoBean> list) {
- this.mList = list;
+ String mPowerStationStatus;
+
+ /**
+ * 鏀堕泦SwipeLayout鏁扮粍,瑕佷竴閿叏閮ㄦ墦寮�;
+ */
+ private List<SwipeLayout> swipeLayoutList = new ArrayList<>();
+
+ public HouseInfoAdapter(Context context) {
+
+ this.mContext = context;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- View contentItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.frgment_house_list_line, parent, false);
+ View contentItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_plant_details, parent, false);
return new MyViewHolder(contentItem);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
- HouseInfoBean houseInfoBean = this.mList.get(position);
- holder.homeNameTv.setText(houseInfoBean.getName());
+
+
+ HouseIdBean houseIdBean = this.mList.get(position);
+ holder.homeNameTv.setText(houseIdBean.getHomeName().trim());
+ //瑁呮満瀹归噺
+ String capacity = HdlCommonLogic.getBigDecimal(houseIdBean.getInstalledCapacity()).toString();
+ holder.capacityTv.setText(capacity);
+ //鍙戠數鍔熺巼
+ holder.power_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getPower()));
+ holder.power_kw_unit.setText(HdlCommonLogic.convertUnit(houseIdBean.getPower(), UnitType.kW));
+ //褰撴棩鍙戠數閲�
+ holder.day_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getTodayElectricity()));
+ holder.day_kwh_unit.setText(HdlCommonLogic.convertUnit(houseIdBean.getTodayElectricity(), UnitType.kWh));
+ //褰撴湀鍙戠數閲�
+ holder.month_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getMonthElectricity()));
+ holder.month_kwh_unit.setText(HdlCommonLogic.convertUnit(houseIdBean.getMonthElectricity(), UnitType.kWh));
+
+ holder.plant_details_location_tv.setText(houseIdBean.getHomeAddress());
+ holder.item_parent_rl.setTag(position);
+ setTextViewStyle(holder.stateTv, houseIdBean.getPowerStationStatus());
+ GlideUtils.getRoundedCornersImage(mContext, houseIdBean.getPowerStationImage(), holder.homeIconIv, 6);
+// HdlLogLogic.print("---鐢电珯鍚嶇О:" + houseIdBean.getHomeName() + "---鍥剧墖url:" + houseIdBean.getPowerStationImage(), false);
+ holder.item_parent_rl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ try {
+ if (noOnclickListener != null) {
+ noOnclickListener.onClick((int) holder.item_parent_rl.getTag(), houseIdBean);
+ }
+ } catch (Exception ignored) {
+ }
+ }
+ });
+ //绉诲姩鐢电珯浣嶇疆
+ holder.move_home_ll.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ try {
+ if (noOnclickListener != null) {
+ noOnclickListener.onMoveClick((int) holder.item_parent_rl.getTag(), houseIdBean);
+ }
+ } catch (Exception ignored) {
+ }
+ }
+ });
+ holder.del_home_ll.setVisibility(View.GONE);
+ if (houseIdBean.getDeliverStatus().equals("UNDELIVERED")) {
+ //鏈氦浠樺畬瑕佹樉绀哄垹闄ゆ寜閽�
+ holder.del_home_ll.setVisibility(View.VISIBLE);
+ }
+ //鍒犻櫎鐢电珯
+ holder.del_home_ll.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ try {
+ if (noOnclickListener != null) {
+ noOnclickListener.onDelClick((int) holder.item_parent_rl.getTag(), houseIdBean);
+ }
+ } catch (Exception ignored) {
+ }
+ }
+ });
}
@@ -42,26 +127,138 @@
}
- public void setList(List<HouseInfoBean> list) {
- this.mList = list;
+ public void setList(List<HouseIdBean> newData, String powerStationStatus) {
+ mPowerStationStatus = powerStationStatus;
+ if (this.mList == null) {
+ this.mList = new ArrayList<>();
+ } else {
+ this.mList.clear();
+ }
+
+ this.mList.addAll(newData);
+ notifyDataSetChanged();
}
+ public void setNoOnclickListener(OnclickListener onclickListener) {
+ this.noOnclickListener = onclickListener;
+ }
+
+ public List<SwipeLayout> getSwipeLayoutList() {
+ if (this.swipeLayoutList == null) {
+ this.swipeLayoutList = new ArrayList<>();
+ }
+ return this.swipeLayoutList;
+ }
+
+ /**
+ * 鏀瑰彉缁勪欢鏍峰紡
+ *
+ * @param textView 鏄剧ず缁勪欢
+ * 濡傛灉璁惧浠庢潵娌′笂鎶ヨ繃鏁版嵁鏁版嵁 鐘舵�侊細杩炴帴涓�
+ * 璁惧鍦ㄧ嚎 浣嗘槸褰撳墠澶勪簬鏁呴殰 鐘舵�侊細鏁呴殰
+ * 璁惧鍦ㄧ嚎锛堟湁涓婃姤杩囨暟鎹紝娌℃湁鏁呴殰锛� 鐘舵�侊細鍦ㄧ嚎
+ * 璁惧绂荤嚎 鐘舵�侊細绂荤嚎
+ * @param state_value 鐢电珯鐘舵��(1:姝e父(杩愯),2:绂荤嚎,3:杩炴帴涓�,4:鏁呴殰,5:绂荤嚎鏈夋晠闅�)
+ */
+ 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);
+ if (mPowerStationStatus.equals(PowerStationStatus.All)) {
+ switch (state_value) {
+ case 1: {
+ text = mContext.getString(R.string.my_power_station_operation);
+ }
+ break;
+
+ case 2: {
+ text = mContext.getString(R.string.my_power_station_off_line);
+ drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_ffb9b9b9);
+ }
+ break;
+ case 3: {
+ text = mContext.getString(R.string.my_power_station_connecting);
+ drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_satte_ffb300);
+ }
+ break;
+ case 4:
+ case 5: {
+ text = mContext.getString(R.string.my_power_station_malfunction);
+ drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_fff55252);
+ }
+ //5:绂荤嚎鏈夋晠闅淥ffline_fault
+ break;
+// case 5: {
+// text = mContext.getString(R.string.Offline_fault);
+// drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_e34343);
+// }
+// break;
+ }
+ } else if (mPowerStationStatus.equals(PowerStationStatus.malfunction)) {
+ text = mContext.getString(R.string.my_power_station_malfunction);
+ drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_fff55252);
+ } else if (mPowerStationStatus.equals(PowerStationStatus.off)) {
+ text = mContext.getString(R.string.my_power_station_off_line);
+ drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_ffb9b9b9);
+ } else if (mPowerStationStatus.equals(PowerStationStatus.connecting)) {
+ text = mContext.getString(R.string.my_power_station_connecting);
+ drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_satte_ffb300);
+ }
+// textView.setText(text);
+ textView.setBackground(drawable);
+
+
+ }
+
+ /**
+ * 涓�琛屽竷灞�瀹瑰櫒
+ */
static class MyViewHolder extends RecyclerView.ViewHolder {
public ImageView homeIconIv;//浣忓畢鍥剧墖
public TextView homeNameTv;//浣忓畢鍚嶇О
public TextView capacityTv;//瑁呮満瀹归噺
- public TextView powerTv;//鍙戠數鍔熺巼
+ public TextView power_value_tv;//鍙戠數鍔熺巼
+ public TextView power_kw_unit;//鍙戠數鍔熺巼鍗曚綅
+ public TextView day_value_tv;//褰撴棩鍙戠數閲�
+ public TextView day_kwh_unit;//褰撴棩鍙戠數閲忓崟浣�
+ public TextView month_value_tv;//褰撴湀鍙戠數閲�
+ public TextView month_kwh_unit;//褰撴湀鍙戠數閲忓崟浣�
public TextView stateTv;//鐢电珯鐘舵��(杩炴帴涓�,杩愯,绂荤嚎,鏁呴殰);
+ public RelativeLayout item_parent_rl;//鏉$洰鐖跺鍣�
+ public LinearLayout move_home_ll;//绉诲姩鐢电珯浣嶇疆
+ public LinearLayout del_home_ll;//鍒犻櫎鐢电珯
+ public TextView plant_details_location_tv;//鐢电珯鍦板潃
+ public SwipeLayout item_parent_swipeLayout;//鐖跺鍣�
public MyViewHolder(@NonNull View itemView) {
super(itemView);
- homeIconIv = itemView.findViewById(R.id.fragment_house_list_line_left_iv);
- homeNameTv = itemView.findViewById(R.id.fragment_house_list_line_name_tv);
- capacityTv = itemView.findViewById(R.id.fragment_house_list_line_capacity_tv);
- powerTv = itemView.findViewById(R.id.fragment_house_list_line_power_tv);
- stateTv = itemView.findViewById(R.id.fragment_house_list_line_state_tv);
+ homeIconIv = itemView.findViewById(R.id.device_details_image_iv);
+ homeNameTv = itemView.findViewById(R.id.device_details_name_tv);
+ capacityTv = itemView.findViewById(R.id.device_details_value_tv);
+ power_value_tv = itemView.findViewById(R.id.power_value_tv);
+ power_kw_unit = itemView.findViewById(R.id.power_kw_unit);
+ day_value_tv = itemView.findViewById(R.id.day_value_tv);
+ day_kwh_unit = itemView.findViewById(R.id.day_kwh_unit);
+ month_value_tv = itemView.findViewById(R.id.month_value_tv);
+ month_kwh_unit = itemView.findViewById(R.id.month_kwh_unit);
+ stateTv = itemView.findViewById(R.id.device_state_tv);
+ item_parent_rl = itemView.findViewById(R.id.item_parent_rl);
+ move_home_ll = itemView.findViewById(R.id.move_ll);
+ del_home_ll = itemView.findViewById(R.id.del_ll);
+ plant_details_location_tv = itemView.findViewById(R.id.plant_details_location_tv);
+ item_parent_swipeLayout = itemView.findViewById(R.id.item_parent_swipeLayout);
}
}
+
+ public interface OnclickListener {
+ void onClick(int position, HouseIdBean houseIdBean);
+
+ void onMoveClick(int position, HouseIdBean houseIdBean);
+
+ void onDelClick(int position, HouseIdBean houseIdBean);
+
+ }
+
}
--
Gitblit v1.8.0