首頁 >Java >java教程 >如何使用十字按鈕從 Android RecyclerView 中刪除項目?

如何使用十字按鈕從 Android RecyclerView 中刪除項目?

Patricia Arquette
Patricia Arquette原創
2024-11-03 00:51:03207瀏覽

How to Remove Items from an Android RecyclerView with Cross Buttons?

Android RecyclerView 專案新增與刪除

問題

此框包括一個包含一個框圖和一個十字按鈕(ImageView)。 RecyclerView 外部的按鈕用於切換十字按鈕的可見性。目的是當點擊對應的十字按鈕時從RecyclerView中刪除一個項目。

解決方案

在適配器的ViewHolder類別中:
  1. 為ViewHolder 實作OnClickList🎜 >
  2. 為ViewHolder 實作OnClickList🎜 >為ViewHolage 實作OnClickList和TextView 上的點擊。
  3. 為十字按鈕(ImageView)新增 OnClick 處理程序。在處理程序中,從資料集中刪除項目並使用 notificationDataSetChanged() 更新 RecyclerView。 在 Adapter 類別
  4. 中,加入一個方法來
刪除特定位置的項目

,呼叫notifyItemRemoved() 和notifyItemRangeChanged()。

<code class="java">public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {

    private ArrayList<String> mDataset;

    public MyAdapter(ArrayList<String> myDataset) {
        mDataset = myDataset;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent,int viewType) {
        // ...

        holder.mNameTextView.setOnClickListener(this);
        holder.crossButton.setOnClickListener(this);

        return holder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

        // ...

    }

    @Override
    public void onClick(View view) {
        if (view.getId() == holder.crossButton.getId()) {
            removeAt(holder.getAdapterPosition());
        } else if (view.getId() == holder.mNameTextView.getId()) {
            // ...
        }
    }

    public void removeAt(int position) {
        mDataset.remove(position);
        notifyItemRemoved(position);
        notifyItemRangeChanged(position, mDataset.size());
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        TextView mNameTextView;
        ImageView crossButton;

        public ViewHolder(View v) {
            super(v);

            mNameTextView = (TextView) v.findViewById(R.id.nameTextView);
            crossButton = (ImageView) v.findViewById(R.id.crossButton);
        }
    }
}</code>
範例適配器程式碼

以上是如何使用十字按鈕從 Android RecyclerView 中刪除項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn