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
Lepaskan: 2024-11-03 00:51:03
asal
196 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan