From 685812c2040b48d06422caa61c03666c9ffa3952 Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期二, 21 一月 2025 13:45:40 +0800 Subject: [PATCH] # --- app/src/main/java/com/example/agvcontroller/EditeAdapter.java | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 104 insertions(+), 5 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..3f6fa2f 100644 --- a/app/src/main/java/com/example/agvcontroller/EditeAdapter.java +++ b/app/src/main/java/com/example/agvcontroller/EditeAdapter.java @@ -1,21 +1,25 @@ 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.Button; import android.widget.EditText; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.appcompat.widget.AppCompatImageButton; import androidx.recyclerview.widget.RecyclerView; import java.util.List; public class EditeAdapter extends RecyclerView.Adapter<EditeAdapter.ViewHolder> { - private List<Item> itemList; + private static List<Item> itemList; public EditeAdapter(List<Item> itemList) { this.itemList = itemList; @@ -24,11 +28,60 @@ public static class ViewHolder extends RecyclerView.ViewHolder { EditText agvNo; EditText ip; + AppCompatImageButton 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) { + Item 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) { + Item item = itemList.get(position); + item.setIp(s.toString()); // 鏇存柊鏁版嵁婧� + } + } + }); itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -36,6 +89,7 @@ Log.i("List","123"); } }); + } } @@ -66,6 +120,12 @@ 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()) { @@ -82,18 +142,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