From 5bac3017277a90d56ba3e653f380d74025bb7a31 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 24 三月 2026 16:04:11 +0800
Subject: [PATCH] 2026年03月24日16:04:09
---
app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java | 268 +++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 199 insertions(+), 69 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 75a27e5..a0472fd 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
@@ -20,6 +20,7 @@
import com.hdl.photovoltaic.enums.DebugStatus;
import com.hdl.photovoltaic.enums.DeliverStatus;
import com.hdl.photovoltaic.enums.PowerStationStatus;
+import com.hdl.photovoltaic.enums.PowerStationType;
import com.hdl.photovoltaic.enums.UnitType;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.ui.bean.HouseIdBean;
@@ -31,7 +32,9 @@
public class HouseInfoAdapter extends RecyclerView.Adapter<HouseInfoAdapter.MyViewHolder> {
-
+ // 瀹氫箟涓嶅悓鐨� viewType 甯搁噺
+ public static final int VIEW_TYPE_NORMAL = 1; // 鏅�氱數绔欒鎯�
+ public static final int VIEW_TYPE_BMS = 2; // BMS鏁版嵁鍗$墖
private List<HouseIdBean> mList;
private final Context mContext;
private OnclickListener noOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣�
@@ -48,91 +51,170 @@
this.mContext = context;
}
+ @Override
+ public int getItemViewType(int position) {
+ HouseIdBean item = this.mList.get(position);
+ if (item.getPowerStationType().equals(PowerStationType.BMS)) {
+ return VIEW_TYPE_BMS;
+ } else {
+ return VIEW_TYPE_NORMAL;
+ }
+ }
+
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- View contentItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_plant_details, parent, false);
+ View contentItem;
+ // 鏍规嵁 viewType 鍔犺浇涓嶅悓鐨勫竷灞�鏂囦欢
+ if (viewType == VIEW_TYPE_BMS) {
+ contentItem = LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.item_plant_bms_details, parent, false);
+ } else {
+ 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) {
-
-
HouseIdBean houseIdBean = this.mList.get(position);
- holder.homeNameTv.setText(houseIdBean.getHomeName().trim());
- //缁勪覆瀹归噺(鍒涘缓鐢电珯鏃惰緭鍏ョ殑缁勪覆瀹归噺)
- holder.pv_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getInstalledCapacity(), UnitType.kWp));
- holder.pv_kw_unit.setText(HdlCommonLogic.convertKWPUnit(houseIdBean.getInstalledCapacity()));
- //褰撴棩鍙戠數
- holder.generation_today_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getTodayElectricity(), UnitType.kWh));
- holder.generation_today_kw_unit.setText(HdlCommonLogic.convertKWHUnit(houseIdBean.getTodayElectricity()));
- //閫嗗彉鍣ㄩ瀹氬姛鐜囷紙鍗曚釜閫嗗彉鍣ㄩ瀹氬姛鐜�*閫嗗彉鍣ㄦ暟閲忥級
- holder.output_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getInvPower(), UnitType.kW));
- holder.output_kw_unit.setText(HdlCommonLogic.convertKWUnit(houseIdBean.getInvPower()));
- //鐢垫睜鑳介噺锛堝閲�*鐢垫睜鏁伴噺锛�
- holder.battery_storage_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getBatteryCapacity(), UnitType.kWh));
- holder.battery_storage_kw_unit.setText(HdlCommonLogic.convertKWHUnit(houseIdBean.getBatteryCapacity()));
+ int viewType = getItemViewType(position);
+ if (viewType == VIEW_TYPE_BMS) {
+ holder.setText(R.id.bms_home_name_tv, houseIdBean.getHomeName().trim());
+ //鐢垫睜鑳介噺锛堝閲�*鐢垫睜鏁伴噺锛�
+ holder.setText(R.id.bms_battery_storage_value_tv, HdlCommonLogic.convertDoubleValue(houseIdBean.getBatteryCapacity(), UnitType.kWh));
+ holder.setText(R.id.bms_battery_storage_kw_unit, HdlCommonLogic.convertKWHUnit(houseIdBean.getBatteryCapacity()));
+ holder.setText(R.id.bms_home_location_tv, houseIdBean.getHomeAddress());
+ holder.getView(R.id.bms_item_parent_rl).setTag(position);
+ setHomeStateTextViewStyle(holder.getView(R.id.bms_home_state_tv), houseIdBean.getPowerStationStatus());
+ setHomeDebugStateTextViewStyle(holder.getView(R.id.bms_home_debug_state_tv), holder.getView(R.id.bms_home_debug_state_iv), houseIdBean.getDebugStatus());
+ GlideUtils.getRoundedCornersImage(mContext, houseIdBean.getPowerStationImage(), holder.getView(R.id.bms_home_image_iv), 6);
+ holder.getView(R.id.bms_item_parent_rl).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ try {
+ if (noOnclickListener != null) {
+ noOnclickListener.onClick((int) holder.getView(R.id.bms_item_parent_rl).getTag(), houseIdBean);
+ }
+ } catch (Exception ignored) {
+ }
+ }
+ });
+ //绉诲姩鐢电珯浣嶇疆
+ holder.getView(R.id.bms_move_ll).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ try {
+ if (noOnclickListener != null) {
+ noOnclickListener.onMoveClick((int) holder.getView(R.id.bms_item_parent_rl).getTag(), houseIdBean);
+ }
+ } catch (Exception ignored) {
+ }
+ }
+ });
+ holder.getView(R.id.bms_del_ll).setVisibility(View.GONE);
+ if (houseIdBean.getDebugStatus().equals(DebugStatus.Debugging)) {
+ //鏈氦浠樺畬瑕佹樉绀哄垹闄ゆ寜閽�
+ holder.getView(R.id.bms_del_ll).setVisibility(View.VISIBLE);
+ holder.setImageResource(R.id.bms_del_home_iv, R.drawable.del_home);
+ }
+ if (houseIdBean.getDebugStatus().equals(DebugStatus.WAIT_DELIVERED)) {
+ //鏇存敼鎴愬洖婊氬浘鏍�
+ holder.getView(R.id.bms_del_ll).setVisibility(View.VISIBLE);
+ holder.setImageResource(R.id.bms_del_home_iv, R.drawable.roll_back);
+ }
- holder.home_location_tv.setText(houseIdBean.getHomeAddress());
- holder.item_parent_rl.setTag(position);
- setHomeStateTextViewStyle(holder.home_state_tv, houseIdBean.getPowerStationStatus());
- setHomeDebugStateTextViewStyle(holder.home_debug_state_tv, holder.home_debug_state_iv, houseIdBean.getDebugStatus());
- GlideUtils.getRoundedCornersImage(mContext, houseIdBean.getPowerStationImage(), holder.homeIconIv, 6);
+ //鍒犻櫎鐢电珯
+ holder.getView(R.id.bms_del_ll).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ try {
+ if (noOnclickListener != null) {
+ noOnclickListener.onDelClick((int) holder.getView(R.id.bms_item_parent_rl).getTag(), houseIdBean);
+ }
+ } catch (Exception ignored) {
+ }
+ }
+ });
+ if (UserConfigManage.getInstance().isTourist_mode()) {
+ holder.getView(R.id.bms_del_ll).setVisibility(View.GONE);
+ }
+ } else {
+ holder.homeNameTv.setText(houseIdBean.getHomeName().trim());
+ //缁勪覆瀹归噺(鍒涘缓鐢电珯鏃惰緭鍏ョ殑缁勪覆瀹归噺)
+ holder.pv_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getInstalledCapacity(), UnitType.kWp));
+ holder.pv_kw_unit.setText(HdlCommonLogic.convertKWPUnit(houseIdBean.getInstalledCapacity()));
+ //褰撴棩鍙戠數
+ holder.generation_today_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getTodayElectricity(), UnitType.kWh));
+ holder.generation_today_kw_unit.setText(HdlCommonLogic.convertKWHUnit(houseIdBean.getTodayElectricity()));
+ //閫嗗彉鍣ㄩ瀹氬姛鐜囷紙鍗曚釜閫嗗彉鍣ㄩ瀹氬姛鐜�*閫嗗彉鍣ㄦ暟閲忥級
+ holder.output_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getInvPower(), UnitType.kW));
+ holder.output_kw_unit.setText(HdlCommonLogic.convertKWUnit(houseIdBean.getInvPower()));
+ //鐢垫睜鑳介噺锛堝閲�*鐢垫睜鏁伴噺锛�
+ holder.battery_storage_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getBatteryCapacity(), UnitType.kWh));
+ holder.battery_storage_kw_unit.setText(HdlCommonLogic.convertKWHUnit(houseIdBean.getBatteryCapacity()));
+
+ holder.home_location_tv.setText(houseIdBean.getHomeAddress());
+ holder.item_parent_rl.setTag(position);
+ setHomeStateTextViewStyle(holder.home_state_tv, houseIdBean.getPowerStationStatus());
+ setHomeDebugStateTextViewStyle(holder.home_debug_state_tv, holder.home_debug_state_iv, houseIdBean.getDebugStatus());
+ 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);
+ 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) {
}
- } catch (Exception ignored) {
}
- }
- });
- //绉诲姩鐢电珯浣嶇疆
- holder.home_move_ll.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- try {
- if (noOnclickListener != null) {
- noOnclickListener.onMoveClick((int) holder.item_parent_rl.getTag(), houseIdBean);
+ });
+ //绉诲姩鐢电珯浣嶇疆
+ holder.home_move_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) {
}
- } catch (Exception ignored) {
}
- }
- });
- holder.home_del_ll.setVisibility(View.GONE);
-
- if (houseIdBean.getDebugStatus().equals(DebugStatus.Debugging)) {
- //鏈氦浠樺畬瑕佹樉绀哄垹闄ゆ寜閽�
- holder.home_del_ll.setVisibility(View.VISIBLE);
- holder.del_home_iv.setImageResource(R.drawable.del_home);
- }
- if (houseIdBean.getDebugStatus().equals(DebugStatus.WAIT_DELIVERED)) {
- //鏇存敼鎴愬洖婊氬浘鏍�
- holder.home_del_ll.setVisibility(View.VISIBLE);
- holder.del_home_iv.setImageResource(R.drawable.roll_back);
- }
-
- //鍒犻櫎鐢电珯
- holder.home_del_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) {
- }
- }
- });
-
- if (UserConfigManage.getInstance().isTourist_mode()) {
+ });
holder.home_del_ll.setVisibility(View.GONE);
- }
+ if (houseIdBean.getDebugStatus().equals(DebugStatus.Debugging)) {
+ //鏈氦浠樺畬瑕佹樉绀哄垹闄ゆ寜閽�
+ holder.home_del_ll.setVisibility(View.VISIBLE);
+ holder.del_home_iv.setImageResource(R.drawable.del_home);
+ }
+ if (houseIdBean.getDebugStatus().equals(DebugStatus.WAIT_DELIVERED)) {
+ //鏇存敼鎴愬洖婊氬浘鏍�
+ holder.home_del_ll.setVisibility(View.VISIBLE);
+ holder.del_home_iv.setImageResource(R.drawable.roll_back);
+ }
+
+ //鍒犻櫎鐢电珯
+ holder.home_del_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) {
+ }
+ }
+ });
+
+ if (UserConfigManage.getInstance().isTourist_mode()) {
+ holder.home_del_ll.setVisibility(View.GONE);
+ }
+ }
}
@@ -316,6 +398,54 @@
home_location_tv = itemView.findViewById(R.id.home_location_tv);
item_parent_swipeLayout = itemView.findViewById(R.id.item_parent_swipeLayout);
}
+
+ /**
+ * 璁剧疆鏂囨湰
+ */
+ public void setText(int viewId, String text) {
+ TextView textView = getView(viewId);
+ if (textView != null) {
+ textView.setText(text);
+ }
+ }
+
+ /**
+ * 璁剧疆鍥剧墖璧勬簮
+ */
+ public void setImageResource(int viewId, int resId) {
+ ImageView imageView = getView(viewId);
+ if (imageView != null) {
+ imageView.setImageResource(resId);
+ }
+ }
+
+ /**
+ * 璁剧疆鏂囨湰棰滆壊
+ */
+ public void setTextColor(int viewId, int color) {
+ TextView textView = getView(viewId);
+ if (textView != null) {
+ textView.setTextColor(color);
+ }
+ }
+
+ /**
+ * 璁剧疆鐐瑰嚮浜嬩欢
+ */
+ public void setOnClickListener(int viewId, View.OnClickListener listener) {
+ View view = getView(viewId);
+ if (view != null) {
+ view.setOnClickListener(listener);
+ }
+ }
+
+ /**
+ * 鑾峰彇 View
+ */
+ @SuppressWarnings("unchecked")
+ public <T extends View> T getView(int viewId) {
+ return (T) itemView.findViewById(viewId);
+ }
}
public interface OnclickListener {
--
Gitblit v1.8.0