


Comment supprimer et ajouter des éléments dans un RecyclerView Android avec un bouton croisé pour la suppression ?
Suppression et ajout d'éléments Android RecyclerView
Android RecyclerView fournit un moyen efficace d'afficher de grands ensembles de données et de gérer l'insertion et la suppression d'éléments. Cet article montre comment gérer l'ajout et la suppression d'éléments d'un RecyclerView, en se concentrant sur un scénario avec un TextView et un bouton croisé ImageView.
Problème :
Un RecyclerView avec une liste d'éléments est présentée et chaque élément a un nom et un bouton en forme de croix. Le bouton en forme de croix doit supprimer l'élément correspondant lorsqu'il est enfoncé.
Solution :
- Implémenter un adaptateur personnalisé (MyAdapter) :
Étendez la classe RecyclerView.Adapter et définissez une classe ViewHolder qui contient des références à TextView et ImageView.
<code class="java">public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { 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) { // Create a view and ViewHolder ViewHolder holder = new ViewHolder(v); holder.mNameTextView.setOnClickListener(this); holder.mNameTextView.setOnLongClickListener(this); return holder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { // Bind data to the ViewHolder holder.mNameTextView.setText(mDataset.get(position)); } @Override public int getItemCount() { return mDataset.size(); } @Override public void onClick(View view) { // Handle click events for the TextView Toast.makeText(sContext, holder.mNameTextView.getText(), Toast.LENGTH_SHORT).show(); } @Override public boolean onLongClick(View view) { // Handle long-click events for the TextView mDataset.remove(holder.getPosition()); notifyDataSetChanged(); return false; } 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>
- Implémentez la gestion des événements de clic pour le bouton croisé :
Remplacez la méthode onClick dans ViewHolder pour gérer les événements de clic pour le bouton croisé ImageView.
<code class="java">@Override public void onClick(View v) { // Check if the view clicked is the cross button if (v.equals(holder.mCrossButtonImageView)) { // Remove the item from the dataset mDataset.remove(holder.getPosition()); // Notify the adapter of the item removal notifyItemRemoved(holder.getPosition()); } else { // Handle other click events if needed } }</code>
- Définissez la visibilité du ImageView du bouton croisé :
Pour masquer initialement le bouton croisé ImageView et l'afficher en cas de besoin, utilisez la méthode setVisibility dans votre onBindViewHolder.
<code class="java">@Override public void onBindViewHolder(ViewHolder holder, int position) { // Bind data to the ViewHolder holder.mNameTextView.setText(mDataset.get(position)); // Check if the cross button should be visible if (itemClicked) { holder.mCrossButtonImageView.setVisibility(View.VISIBLE); } else { holder.mCrossButtonImageView.setVisibility(View.GONE); } }</code>
- Détails d'implémentation supplémentaires :
- Vous pouvez utiliser un indicateur booléen pour contrôler la visibilité du bouton croisé ImageView.
- Gérer les autres événements de clic souhaités ( tels que les clics TextView) en remplaçant la méthode onClick dans votre ViewHolder.
- Envisagez d'implémenter la fonctionnalité « Annuler » pour restaurer les éléments supprimés si vous le souhaitez.
Conclusion :
Cette approche vous permet d'ajouter et de supprimer dynamiquement des éléments d'un RecyclerView et de configurer la visibilité d'un bouton en croix pour la suppression d'éléments. Il offre flexibilité et efficacité dans la gestion des interactions des utilisateurs et la mise à jour des données affichées.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Dépannage et solutions au logiciel de sécurité de l'entreprise qui fait que certaines applications ne fonctionnent pas correctement. De nombreuses entreprises déploieront des logiciels de sécurité afin d'assurer la sécurité des réseaux internes. ...

Solutions pour convertir les noms en nombres pour implémenter le tri dans de nombreux scénarios d'applications, les utilisateurs peuvent avoir besoin de trier en groupe, en particulier en un ...

Le traitement de la cartographie des champs dans l'amarrage du système rencontre souvent un problème difficile lors de l'exécution d'amarrage du système: comment cartographier efficacement les champs d'interface du système a ...

Commencez le printemps à l'aide de la version IntelliJideaultimate ...

Lorsque vous utilisez MyBatis-Plus ou d'autres cadres ORM pour les opérations de base de données, il est souvent nécessaire de construire des conditions de requête en fonction du nom d'attribut de la classe d'entité. Si vous manuellement à chaque fois ...

Conversion des objets et des tableaux Java: Discussion approfondie des risques et des méthodes correctes de la conversion de type de distribution De nombreux débutants Java rencontreront la conversion d'un objet en un tableau ...

Explication détaillée de la conception des tables SKU et SPU sur les plates-formes de commerce électronique Cet article discutera des problèmes de conception de la base de données de SKU et SPU dans les plateformes de commerce électronique, en particulier comment gérer les ventes définies par l'utilisateur ...

Comment la solution de mise en cache Redis réalise-t-elle les exigences de la liste de classement des produits? Pendant le processus de développement, nous devons souvent faire face aux exigences des classements, comme l'affichage d'un ...
