From 8e6d7c8275117ca2659e7f82051f8af19741aa9d Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期五, 07 二月 2025 16:51:33 +0800
Subject: [PATCH] #

---
 app/src/main/java/com/example/agvcontroller/EditeAdapter.java |  167 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 159 insertions(+), 8 deletions(-)

diff --git a/app/src/main/java/com/example/agvcontroller/EditeAdapter.java b/app/src/main/java/com/example/agvcontroller/EditeAdapter.java
index 5249683..a6a04be 100644
--- a/app/src/main/java/com/example/agvcontroller/EditeAdapter.java
+++ b/app/src/main/java/com/example/agvcontroller/EditeAdapter.java
@@ -1,23 +1,85 @@
 package com.example.agvcontroller;
 
+import android.graphics.Color;
+import android.text.Editable;
+import android.text.TextWatcher;
 import android.util.Log;
+import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.TextView;
+import android.widget.EditText;
+import android.widget.ImageButton;
 
 import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.RecyclerView;
 
+import java.util.List;
+
 public class EditeAdapter  extends RecyclerView.Adapter<EditeAdapter.ViewHolder> {
 
+    private static List<AGVCar> itemList;
+
+    public EditeAdapter(List<AGVCar> itemList) {
+        this.itemList = itemList;
+    }
+
     public static class ViewHolder extends RecyclerView.ViewHolder {
-        TextView agvNo;
-        TextView ip;
+        EditText agvNo;
+        EditText ip;
+        ImageButton btn;
 
         public ViewHolder(@NonNull View itemView) {
             super(itemView);
-            agvNo = itemView.findViewById(R.id.item_agvNo);
-            ip = itemView.findViewById(R.id.item_ip);
+            agvNo = itemView.findViewById(R.id.agvNo);
+            ip = itemView.findViewById(R.id.ip);
+            btn = itemView.findViewById(R.id.delete_button);
+
+            // 璁剧疆 agvNo 鐨勬枃鏈彉鍖栫洃鍚�
+            agvNo.addTextChangedListener(new TextWatcher() {
+                @Override
+                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+                    // 鏂囨湰鍙樺寲涔嬪墠
+                }
+
+                @Override
+                public void onTextChanged(CharSequence s, int start, int before, int count) {
+                    // 鏂囨湰鍙樺寲鏃�
+                }
+
+
+                @Override
+                public void afterTextChanged(Editable s) {
+                    // 鏂囨湰鍙樺寲涔嬪悗
+                    int position = getAdapterPosition();
+                    if (position != RecyclerView.NO_POSITION) {
+                        AGVCar item = itemList.get(position);
+                        item.setAgvNo(s.toString()); // 鏇存柊鏁版嵁婧�
+                    }
+                }
+            });
+
+            // 璁剧疆 ip 鐨勬枃鏈彉鍖栫洃鍚�
+            ip.addTextChangedListener(new TextWatcher() {
+                @Override
+                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+                    // 鏂囨湰鍙樺寲涔嬪墠
+                }
+
+                @Override
+                public void onTextChanged(CharSequence s, int start, int before, int count) {
+                    // 鏂囨湰鍙樺寲鏃�
+                }
+
+                @Override
+                public void afterTextChanged(Editable s) {
+                    // 鏂囨湰鍙樺寲涔嬪悗
+                    int position = getAdapterPosition();
+                    if (position != RecyclerView.NO_POSITION) {
+                        AGVCar item = itemList.get(position);
+                        item.setIp(s.toString()); // 鏇存柊鏁版嵁婧�
+                    }
+                }
+            });
 
             itemView.setOnClickListener(new View.OnClickListener() {
                 @Override
@@ -26,23 +88,112 @@
                 }
             });
 
+
         }
     }
 
     @NonNull
     @Override
-    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
-        return null;
+    public EditeAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+        View view = LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false);
+        ViewHolder viewHolder = new EditeAdapter.ViewHolder(view);
+        view.setOnClickListener(this::onClick);
+        return viewHolder;
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        return R.layout.edite_view;
+    }
+
+    private void onClick(View view) {
+        if (mOnItemClickListener != null) {
+            mOnItemClickListener.onItemClick(view,(int)view.getTag());
+        }
+    }
+
+    private EditeAdapter.OnItemClickListener mOnItemClickListener = null;
+
+    public static interface OnItemClickListener {
+        void onItemClick(View view,int position);
+    }
+
+    public void removeItem(int position) {
+        itemList.remove(position);
+        notifyItemRemoved(position);
+        notifyItemRangeChanged(position, itemList.size()); // 鏇存柊鍓╀綑椤圭殑浣嶇疆
     }
 
     @Override
     public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+        if (itemList == null || itemList.isEmpty()) {
+            // 榛樿鏄剧ず椤甸潰
+            //return 1;
+        } else {
+            AGVCar item = itemList.get(position);
+            int status = item.getStatus();
+            switch (status) {
+                case 0:
+                    holder.itemView.setBackgroundColor(Color.parseColor("#D3D3D3"));
+                    break;
+                default:
+                    holder.itemView.setBackgroundColor(Color.parseColor("#90EE90"));
+                    break;
+            }
+            // 娓呴櫎鏃х殑 TextWatcher
+            holder.agvNo.removeTextChangedListener((TextWatcher) holder.agvNo.getTag());
+            holder.ip.removeTextChangedListener((TextWatcher) holder.ip.getTag());
 
+            // 璁剧疆褰撳墠鏂囨湰
+            holder.agvNo.setText(item.getAgvNo());
+            holder.ip.setText(item.getIp());
+
+            // 娣诲姞鏂扮殑 TextWatcher
+            TextWatcher agvNoWatcher = new TextWatcher() {
+                @Override
+                public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
+
+                @Override
+                public void onTextChanged(CharSequence s, int start, int before, int count) {}
+
+                @Override
+                public void afterTextChanged(Editable s) {
+                    item.setAgvNo(s.toString());
+                }
+            };
+            holder.agvNo.addTextChangedListener(agvNoWatcher);
+            holder.agvNo.setTag(agvNoWatcher);
+
+            TextWatcher ipWatcher = new TextWatcher() {
+                @Override
+                public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
+
+                @Override
+                public void onTextChanged(CharSequence s, int start, int before, int count) {}
+
+                @Override
+                public void afterTextChanged(Editable s) {
+                    item.setIp(s.toString());
+                }
+            };
+            holder.ip.addTextChangedListener(ipWatcher);
+            holder.ip.setTag(ipWatcher);
+
+        }
+        // 璁剧疆鍒犻櫎鎸夐挳鐨勭偣鍑讳簨浠�
+        holder.btn.setOnClickListener(v -> {
+            Log.i("List",itemList.toString());
+            removeItem(position); // 璋冪敤鍒犻櫎鏂规硶
+        });
     }
 
     @Override
     public int getItemCount() {
-        return 0;
+        if (itemList == null || itemList.isEmpty()) {
+            return 0;
+        } else {
+            return itemList.size();
+        }
     }
 
 }

--
Gitblit v1.9.1