From e6a0ff5475e271a6b126ab27de6cf9f230b67512 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 23 四月 2025 15:29:29 +0800 Subject: [PATCH] 2025年04月23日15:29:27 --- app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java | 265 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 248 insertions(+), 17 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 6d28e1e..9617b6b 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,44 +1,122 @@ 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.hdl.photovoltaic.R; +import com.hdl.photovoltaic.enums.DebugStatus; +import com.hdl.photovoltaic.enums.DeliverStatus; +import com.hdl.photovoltaic.enums.PowerStationStatus; +import com.hdl.photovoltaic.enums.UnitType; +import com.hdl.photovoltaic.other.HdlCommonLogic; 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<HouseIdBean> mList; + private final Context mContext; private OnclickListener noOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣� - public HouseInfoAdapter(List<HouseIdBean> 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) { + + HouseIdBean houseIdBean = this.mList.get(position); - holder.homeNameTv.setText(houseIdBean.getHomeName()); - holder.itemView.setOnClickListener(new View.OnClickListener() { + 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) { - if (noOnclickListener != null) { - noOnclickListener.onClick(holder.getAdapterPosition(), houseIdBean); + try { + if (noOnclickListener != null) { + noOnclickListener.onClick((int) holder.item_parent_rl.getTag(), houseIdBean); + } + } 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); + } + } catch (Exception ignored) { + } + } + }); + holder.home_del_ll.setVisibility(View.GONE); + if (houseIdBean.getDeliverStatus().equals(DeliverStatus.UNDELIVERED)) { + //鏈氦浠樺畬瑕佹樉绀哄垹闄ゆ寜閽� + holder.home_del_ll.setVisibility(View.VISIBLE); + } + + //鍒犻櫎鐢电珯 + 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) { } } }); @@ -51,33 +129,186 @@ } - public void setList(List<HouseIdBean> 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 imageView 鏄剧ず浣忓畢鐘舵�佸浘鏍囩粍浠� + * @param stateValue 鐢电珯鐘舵��(1:姝e父(杩愯),2:绂荤嚎,3:杩炴帴涓�,4:鏁呴殰,5:绂荤嚎鏈夋晠闅�) + */ + private void setHomeDebugStateTextViewStyle(TextView textView, ImageView imageView, String stateValue) { + + String text = mContext.getString(R.string.be_debugging); + Drawable drawable = AppCompatResources.getDrawable(mContext, R.drawable.debugging); + switch (stateValue) { + case DebugStatus.Debugging: { + text = mContext.getString(R.string.be_debugging); + drawable = AppCompatResources.getDrawable(mContext, R.drawable.debugging); + } + break; + + case DebugStatus.WAIT_DELIVERED: { + text = mContext.getString(R.string.debugging_completed); + drawable = AppCompatResources.getDrawable(mContext, R.drawable.done); + } + break; + case DebugStatus.Delivered: { + text = mContext.getString(R.string.delivered); + drawable = AppCompatResources.getDrawable(mContext, R.drawable.delivered); + } + break; + case DebugStatus.SECONDARY_DEBUGGIN: { + text = mContext.getString(R.string.authorization_debugging); + drawable = AppCompatResources.getDrawable(mContext, R.drawable.authorization_debugging); + } + break; + } + textView.setText(text); + imageView.setBackground(drawable); + + + } + + /** + * 璁剧疆銆愮數绔欑姸鎬併�戠粍浠舵牱寮� + * + * @param textView 鏄剧ず缁勪欢 + * 濡傛灉璁惧浠庢潵娌′笂鎶ヨ繃鏁版嵁鏁版嵁 鐘舵�侊細杩炴帴涓� + * 璁惧鍦ㄧ嚎 浣嗘槸褰撳墠澶勪簬鏁呴殰 鐘舵�侊細鏁呴殰 + * 璁惧鍦ㄧ嚎锛堟湁涓婃姤杩囨暟鎹紝娌℃湁鏁呴殰锛� 鐘舵�侊細鍦ㄧ嚎 + * 璁惧绂荤嚎 鐘舵�侊細绂荤嚎 + * @param state_value 鐢电珯鐘舵��(1:姝e父(杩愯),2:绂荤嚎,3:杩炴帴涓�,4:鏁呴殰,5:绂荤嚎鏈夋晠闅�) + */ + private void setHomeStateTextViewStyle(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 stateTv;//鐢电珯鐘舵��(杩炴帴涓�,杩愯,绂荤嚎,鏁呴殰); + + public ImageView home_debug_state_iv;//浣忓畢璋冭瘯鐘舵�佸浘鏍� + public TextView home_debug_state_tv;//浣忓畢璋冭瘯鐘舵�� + + public TextView pv_value_tv;//缁勪覆瀹归噺 + public TextView pv_kw_unit;//鍙戠數鍔熺巼鍗曚綅 + public TextView generation_today_value_tv;//褰撴棩鍙戠數 + public TextView generation_today_kw_unit;//褰撴棩鍙戠數鍗曚綅 + public TextView output_value_tv;//棰濆畾鍔熺巼 + public TextView output_kw_unit;//棰濆畾鍔熺巼鍗曚綅 + public TextView battery_storage_value_tv;//鐢垫睜鑳介噺 + public TextView battery_storage_kw_unit;//鐢垫睜鑳介噺鍗曚綅 + public TextView home_state_tv;//鐢电珯鐘舵��(杩炴帴涓�,杩愯,绂荤嚎,鏁呴殰); + public RelativeLayout item_parent_rl;//鏉$洰鐖跺鍣� + public LinearLayout home_move_ll;//绉诲姩鐢电珯浣嶇疆 + public LinearLayout home_del_ll;//鍒犻櫎鐢电珯 + public TextView home_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.home_image_iv); + homeNameTv = itemView.findViewById(R.id.home_name_tv); + home_debug_state_iv = itemView.findViewById(R.id.home_debug_state_iv); + home_debug_state_tv = itemView.findViewById(R.id.home_debug_state_tv); + pv_value_tv = itemView.findViewById(R.id.pv_value_tv); + pv_kw_unit = itemView.findViewById(R.id.pv_kw_unit); + generation_today_value_tv = itemView.findViewById(R.id.generation_today_value_tv); + generation_today_kw_unit = itemView.findViewById(R.id.generation_today_kw_unit); + output_value_tv = itemView.findViewById(R.id.output_value_tv); + output_kw_unit = itemView.findViewById(R.id.output_kw_unit); + battery_storage_value_tv = itemView.findViewById(R.id.battery_storage_value_tv); + battery_storage_kw_unit = itemView.findViewById(R.id.battery_storage_kw_unit); + home_state_tv = itemView.findViewById(R.id.home_state_tv); + item_parent_rl = itemView.findViewById(R.id.item_parent_rl); + home_move_ll = itemView.findViewById(R.id.move_ll); + home_del_ll = itemView.findViewById(R.id.del_ll); + home_location_tv = itemView.findViewById(R.id.home_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