Rumah >Java >javaTutorial >Bagaimana untuk mengalih keluar Item daripada Android RecyclerView dengan Butang Silang?

Bagaimana untuk mengalih keluar Item daripada Android RecyclerView dengan Butang Silang?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 00:51:03201semak imbas

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

Penambahan dan Pembuangan Item Android RecyclerView

Masalah

Pelaksanaan RecyclerView ini termasuk kotak TextView dan butang silang (ImageView). Butang di luar RecyclerView digunakan untuk menogol keterlihatan butang pangkah. Objektifnya adalah untuk mengalih keluar item daripada RecyclerView apabila butang pangkah yang sepadan diklik.

Penyelesaian

Dalam kelas ViewHolder penyesuai:

  1. Laksanakan antara muka OnClickListener untuk ViewHolder mengendalikan klik pada kedua-dua ImageView dan TextView.
  2. Tambahkan pengendali OnClick untuk butang silang (ImageView). Dalam pengendali, alih keluar item daripada set data dan kemas kini RecyclerView dengan notifyDataSetChanged().
  3. Dalam kelas Penyesuai anda, tambahkan kaedah untuk mengalih keluar item pada kedudukan tertentu , memanggil notifyItemRemoved() dan notifyItemRangeChanged().

Contoh Kod Penyesuai

<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>

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Item daripada Android RecyclerView dengan Butang Silang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn