温馨提示×

如何在Android datagrid中添加删除功能

小樊
83
2024-09-07 22:14:02
栏目: 编程语言

在 Android 中,没有名为 DataGrid 的组件

  1. 首先,在布局文件(例如:activity_main.xml)中添加 RecyclerView。
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
  1. 创建一个 RecyclerView 适配器,用于显示数据和处理删除操作。
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<String> dataList;

    public MyAdapter(List<String> dataList) {
        this.dataList = dataList;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        holder.textView.setText(dataList.get(position));
        holder.deleteButton.setOnClickListener(v -> {
            // 删除数据
            dataList.remove(position);
            // 通知适配器更新数据
            notifyItemRemoved(position);
        });
    }

    @Override
    public int getItemCount() {
        return dataList.size();
    }

    static class ViewHolder extends RecyclerView.ViewHolder {
        TextView textView;
        Button deleteButton;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.textView);
            deleteButton = itemView.findViewById(R.id.deleteButton);
        }
    }
}
  1. 在 RecyclerView 的每个项目的布局文件(例如:item_layout.xml)中添加一个 TextView 和一个 Button。
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

   <TextView
        android:id="@+id/textView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1" />

   <Button
        android:id="@+id/deleteButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Delete" />

</LinearLayout>
  1. 在 Activity 或 Fragment 中设置 RecyclerView 的适配器并提供数据。
public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private MyAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        recyclerView = findViewById(R.id.recyclerView);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        List<String> dataList = new ArrayList<>();
        for (int i = 1; i <= 20; i++) {
            dataList.add("Item " + i);
        }

        adapter = new MyAdapter(dataList);
        recyclerView.setAdapter(adapter);
    }
}

现在,当您点击“Delete”按钮时,应用程序将从列表中删除相应的项目。

0