From 318bd727e2fe02e4f541dfe943f77606af41d509 Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期四, 06 二月 2025 14:30:11 +0800 Subject: [PATCH] # --- app/src/main/java/com/example/agvcontroller/EditeAdapter.java | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 105 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 e9a3925..a6a04be 100644 --- a/app/src/main/java/com/example/agvcontroller/EditeAdapter.java +++ b/app/src/main/java/com/example/agvcontroller/EditeAdapter.java @@ -1,12 +1,14 @@ 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.EditText; -import android.widget.TextView; +import android.widget.ImageButton; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; @@ -15,20 +17,69 @@ public class EditeAdapter extends RecyclerView.Adapter<EditeAdapter.ViewHolder> { - private List<Item> itemList; + private static List<AGVCar> itemList; - public EditeAdapter(List<Item> itemList) { + public EditeAdapter(List<AGVCar> itemList) { this.itemList = itemList; } public static class ViewHolder extends RecyclerView.ViewHolder { EditText agvNo; EditText ip; + ImageButton btn; public ViewHolder(@NonNull View itemView) { super(itemView); 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 @@ -36,6 +87,7 @@ Log.i("List","123"); } }); + } } @@ -66,13 +118,19 @@ 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 { - Item item = itemList.get(position); + AGVCar item = itemList.get(position); int status = item.getStatus(); switch (status) { case 0: @@ -82,18 +140,57 @@ holder.itemView.setBackgroundColor(Color.parseColor("#90EE90")); break; } - holder.agvNo.setText("AGV_NO锛� " + item.getAgvNo()); - holder.ip.setText("AGV_IP锛� " + item.getIp()); + // 娓呴櫎鏃х殑 TextWatcher + holder.agvNo.removeTextChangedListener((TextWatcher) holder.agvNo.getTag()); + holder.ip.removeTextChangedListener((TextWatcher) holder.ip.getTag()); - holder.itemView.setTag(position); + // 璁剧疆褰撳墠鏂囨湰 + 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() { if (itemList == null || itemList.isEmpty()) { - return 1; + return 0; } else { return itemList.size(); } -- Gitblit v1.9.1