Maison >Java >javaDidacticiel >Comment supprimer des éléments d'un RecyclerView Android avec des boutons croisés ?
Ajout et suppression d'éléments Android RecyclerView
Problème
Cette implémentation de RecyclerView comprend une boîte TextView et un bouton croisé (ImageView). Un bouton en dehors de RecyclerView est utilisé pour basculer la visibilité du bouton croisé. L'objectif est de supprimer un élément du RecyclerView lorsque l'on clique sur le bouton en forme de croix correspondant.
Solution
Dans la classe ViewHolder de l'adaptateur :
Exemple de code d'adaptateur
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!