Rumah >Java >javaTutorial >Bagaimana untuk mengalih keluar Item daripada RecyclerView Menggunakan Butang Palang?

Bagaimana untuk mengalih keluar Item daripada RecyclerView Menggunakan Butang Palang?

Barbara Streisand
Barbara Streisandasal
2024-10-31 23:29:29558semak imbas

How to Remove Items from RecyclerView Using a Cross Button?

Mengalih keluar Item daripada RecyclerView Menggunakan Cross Button

Dalam penyesuai RecyclerView anda, anda perlu mengendalikan acara butang silang dan mengalih keluar item yang sepadan daripada set data. Berikut ialah versi penyesuai anda yang dipertingkatkan:

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

    private ArrayList<String> mDataset;
    private static Context sContext;

    public MyAdapter(Context context, ArrayList<String> myDataset) {
        mDataset = myDataset;
        sContext = context;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent,int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_text_view, parent, false);

        ViewHolder holder = new ViewHolder(v);
        holder.mNameTextView.setOnClickListener(this);
        holder.mCrossButtonImageView.setOnClickListener(this);
        return holder;
    }

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

        holder.mNameTextView.setText(mDataset.get(position));

    }

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

    @Override
    public void onClick(View view) {
        ViewHolder holder = (ViewHolder) view.getTag();
        if (view.getId() == holder.mCrossButtonImageView.getId()) {
            int position = holder.getAdapterPosition();
            mDataset.remove(position);

            notifyItemRemoved(position);

            Toast.makeText(sContext, "Item " + holder.mNameTextView.getText() + " has been removed from list",
                    Toast.LENGTH_SHORT).show();
        }
    }
    
    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView mNameTextView;
        public ImageView mCrossButtonImageView;

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

            mNameTextView = (TextView) v.findViewById(R.id.nameTextView);
            mCrossButtonImageView = (ImageView) v.findViewById(R.id.crossButton);
        }
    }
}</code>

Kod ini menambahkan pendengar onClick pada butang pangkah, yang mengalih keluar item yang sepadan apabila diklik. Ambil perhatian bahawa getAdapterPosition() harus digunakan dan bukannya getPosition(), kerana getPosition() kini tidak digunakan lagi.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Item daripada RecyclerView Menggunakan Butang Palang?. 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