You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PEGA技术咨询:如何通过UI行尾删除按钮结合Activity按主键删表行

Android 表格行添加删除按钮并实现删除功能步骤

一、布局文件修改

  1. 创建列表项布局(row_item.xml)
    每个表格行包含数据展示控件和末尾的删除按钮:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center_vertical"
        android:padding="8dp">
    
        <!-- 表格列1:姓名 -->
        <TextView
            android:id="@+id/tv_name"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:textSize="16sp"/>
    
        <!-- 表格列2:年龄 -->
        <TextView
            android:id="@+id/tv_age"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:textSize="16sp"/>
    
        <!-- 删除按钮 -->
        <Button
            android:id="@+id/btn_delete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="删除"
            android:textSize="14sp"
            android:backgroundTint="#FF4444"
            android:textColor="#FFFFFF"/>
    </LinearLayout>
    
  2. Activity主布局(activity_main.xml)
    添加RecyclerView用于展示表格:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="16dp">
    
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recycler_table"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </LinearLayout>
    

二、逻辑代码实现

  1. 创建数据实体类(User.java)
    存储表格每行的数据:

    public class User {
        private String name;
        private String age;
    
        public User(String name, String age) {
            this.name = name;
            this.age = age;
        }
    
        // Getter方法
        public String getName() { return name; }
        public String getAge() { return age; }
    }
    
  2. 实现RecyclerView适配器(TableAdapter.java)
    绑定数据并给删除按钮设置点击事件,实现行删除逻辑:

    public class TableAdapter extends RecyclerView.Adapter<TableAdapter.TableViewHolder> {
        private List<User> userList;
    
        public TableAdapter(List<User> userList) {
            this.userList = userList;
        }
    
        @NonNull
        @Override
        public TableViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View itemView = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.row_item, parent, false);
            return new TableViewHolder(itemView);
        }
    
        @Override
        public void onBindViewHolder(@NonNull TableViewHolder holder, int position) {
            User currentUser = userList.get(position);
            holder.tvName.setText(currentUser.getName());
            holder.tvAge.setText(currentUser.getAge());
    
            // 删除按钮点击监听
            holder.btnDelete.setOnClickListener(v -> {
                // 移除当前位置的数据
                userList.remove(position);
                // 通知列表更新,保留平滑动画
                notifyItemRemoved(position);
                notifyItemRangeChanged(position, userList.size());
            });
        }
    
        @Override
        public int getItemCount() {
            return userList.size();
        }
    
        // 内部ViewHolder类
        static class TableViewHolder extends RecyclerView.ViewHolder {
            TextView tvName, tvAge;
            Button btnDelete;
    
            public TableViewHolder(@NonNull View itemView) {
                super(itemView);
                tvName = itemView.findViewById(R.id.tv_name);
                tvAge = itemView.findViewById(R.id.tv_age);
                btnDelete = itemView.findViewById(R.id.btn_delete);
            }
        }
    }
    
  3. Activity初始化逻辑(MainActivity.java)
    初始化数据并配置RecyclerView:

    public class MainActivity extends AppCompatActivity {
        private RecyclerView recyclerView;
        private TableAdapter adapter;
        private List<User> userList;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            recyclerView = findViewById(R.id.recycler_table);
            // 初始化模拟数据
            userList = new ArrayList<>();
            userList.add(new User("张三", "25"));
            userList.add(new User("李四", "30"));
            userList.add(new User("王五", "28"));
    
            // 设置RecyclerView布局管理器(线性布局模拟表格)
            recyclerView.setLayoutManager(new LinearLayoutManager(this));
            adapter = new TableAdapter(userList);
            recyclerView.setAdapter(adapter);
        }
    }
    

效果说明

每行末尾的红色"删除"按钮,点击后对应行会平滑从列表中移除,同时数据集合同步更新。

效果截图示例:
表格行带删除按钮效果

内容的提问来源于stack exchange,提问作者Kasun98

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 10:02:38