J'ai fait une liste d'éléments à plusieurs reprises en utilisant Android RecyclerView
, mais c'est un processus assez compliqué. Passer en revue l'un des nombreux tutoriels en ligne fonctionne ( ceci , ceci et cela est bien), mais je cherche un exemple simple que je peux copier et coller pour être opérationnel rapidement. Seules les fonctionnalités suivantes sont nécessaires:
- Disposition verticale
- Un seul TextView sur chaque ligne
- Répond aux événements de clic
Parce que j'ai souhaité cela plusieurs fois, j'ai finalement décidé de faire la réponse ci-dessous pour ma future référence et la vôtre.
android
android-recyclerview
Suragch
la source
la source
Réponses:
Voici un exemple minimal qui ressemblera à l'image suivante.
Commencez par une activité vide. Vous exécuterez les tâches suivantes pour ajouter le RecyclerView. Tout ce que vous avez à faire est de copier et coller le code dans chaque section. Plus tard, vous pourrez le personnaliser selon vos besoins.
Mettre à jour les dépendances Gradle
Assurez-vous que les dépendances suivantes se trouvent dans votre
gradle.build
fichier d' application :Vous pouvez mettre à jour les numéros de version sur ce qui est le plus récent . Utilisez
compile
plutôt queimplementation
si vous utilisez toujours Android Studio 2.x.Créer une mise en page d'activité
Ajoutez le
RecyclerView
à votre mise en page XML.activity_main.xml
Créer une disposition de ligne
Chaque ligne de notre
RecyclerView
n'aura qu'une seuleTextView
. Créez un nouveau fichier de ressources de mise en page.recyclerview_row.xml
Créer l'adaptateur
Le
RecyclerView
nécessite un adaptateur pour remplir les vues de chaque ligne avec vos données. Créez un nouveau fichier java.MyRecyclerViewAdapter.java
Remarques
ListViews
et c'est un besoin courant. Vous pouvez supprimer ce code si vous n'en avez pas besoin.Initialiser RecyclerView en activité
Ajoutez le code suivant à votre activité principale.
MainActivity.java
Remarques
ItemClickListener
que nous avons défini dans notre adaptateur. Cela nous permet de gérer les événements de clic de ligne dansonItemClick
.Fini
C'est tout. Vous devriez pouvoir exécuter votre projet maintenant et obtenir quelque chose de similaire à l'image en haut.
Continuer
Ajout d'un séparateur entre les lignes
Vous pouvez ajouter un simple diviseur comme celui-ci
Si vous voulez quelque chose d'un peu plus complexe, voyez les réponses suivantes:
Modification de la couleur de la ligne au clic
Consultez cette réponse pour savoir comment modifier la couleur d'arrière-plan et ajouter l'effet d'entraînement lorsqu'un utilisateur clique sur une ligne.
Mise à jour des lignes
Consultez cette réponse pour savoir comment ajouter, supprimer et mettre à jour des lignes.
Lectures complémentaires
la source
Vue Minimal Recycler prêt à utiliser le modèle Kotlin pour:
Je sais que c'est un vieux fil, tout comme les réponses ici. Ajout de cette réponse pour référence future:
Ajouter une vue de recyclage dans votre mise en page
Créer une mise en page pour afficher les éléments de la liste (list_item.xml)
Créez maintenant un adaptateur minimal pour contenir les données, le code ici est explicite
Ajoutez cette classe pour gérer les événements de clic simple et de clic long sur les éléments de liste
Enfin, réglez votre adaptateur sur Recycler View et ajoutez Touch Listener pour commencer à intercepter l'événement tactile pour un simple ou double tap sur les éléments de la liste
Prime ; Mettre à jour les données
Résultat:
la source
Ce sera la version la plus simple de l'implémentation de RecyclerView.
activity_main.xml
list_item_view.xml
CustomAdapter.java
MainActivity.java
la source
Commencez par ajouter la bibliothèque recyclerview.
Créez une classe de modèle.
créer une classe d'adaptateur.
créer la mise en page row_uses.xml
Trouvez recyclerview et remplissez les données.
trouver le tutoriel complet et le code source ici:
Android RecyclerView
la source
usersAdapter = new UsersAdapter(userModelList,this);
?.Sur la base de différentes sources, j'ai créé une implémentation simple de RecyclerView à l'aide d'une bibliothèque simple.
Ajoutez cette ligne dans
build.gradle
AjouterCréez un RecyclerView en ajoutant MyRecyclerView dans activity_main.xml avec
Maintenant dans MainActivity, créez un ViewHolder en passant le nom de la classe qui doit se lier
Créer une variable de liste d'éléments et des adaptateurs avec très peu de lignes en passant des éléments, une classe et une disposition dans l'adaptateur
ClickListener peut être ajouté avec les lignes suivantes
Tout est fait.
Plus d'exemples et d'implémentations peuvent être trouvés ici . J'espère que cela t'aides !!!
la source
Vous avez maintenant besoin d' un adaptateur pour tous
RecyclerView
onBindViewHolder
, pas deonCreateViewHolder
manipulation.Je montre ici la configuration de deux
RecyclerView
adaptateurs différents par 1 -activity_home.xml
Vous pouvez voir la liste Je passe, l'identifiant de la mise en page de l'élément et l'écouteur des clics de la mise en page.
Ces attributs personnalisés sont créés par BindingAdapter .
Maintenant, à partir de l'activité, vous passez la liste, cliquez sur l'auditeur comme
HomeActivity.java
Vous ne voulez pas trop lire, cloner / télécharger directement l' exemple complet à partir de mon dépôt github. Et essayez-le vous-même.
Vous pouvez voir
GeneralAdapter.java
ci-dessus repo.Si vous rencontrez des problèmes lors de la configuration de la liaison de données, veuillez consulter cette réponse .
la source
Comme je ne peux pas encore commenter, je vais poster comme réponse le lien .. J'ai trouvé un tutoriel simple et bien organisé sur recyclerview http://www.androiddeft.com/2017/10/01/recyclerview-android/
En dehors de cela, lorsque vous allez ajouter une vue de recycleur dans votre activité, ce que vous voulez faire est comme ci-dessous et comment vous devez le faire a été décrit sur le lien
la source
Vous pouvez utiliser un adaptateur abstrait avec des utilitaires différentiels et un filtre
SimpleAbstractAdapter.kt
Et étendre l'adaptateur abstrait avec des méthodes implements
TasksAdapter.kt
Adaptateur d'initialisation
et remplir
ajouter un filtre personnalisé
filtrer les données
la source
Dépendances
Une classe pour l'élément de clic
RecyclerView de deuxième classe
Classe d'adaptateur pour article recycleur
Classe de module
la source
implémentation androidx.recyclerview: recyclerview: .... Il est conseillé de mettre à jour les bibliothèques androidx qui se trouvent ici:
https://developer.android.com/jetpack/androidx/releases/recyclerview
La balise XML Widget du fichier de mise en page doit alors être mise à jour vers: androidx.recyclerview.widget.RecyclerView
la source
Voici une solution Kotlin beaucoup plus récente pour cela, beaucoup plus simple que la plupart des réponses écrites ici, elle utilise une classe anonyme.
J'ai pris la liberté d'utiliser android.R.layout.simple_list_item_1 car c'est plus simple. Je voulais le simplifier encore plus et mettre ItemHolder en tant que classe interne, mais je ne pouvais pas tout à fait comprendre comment le référencer dans un type dans le paramètre de classe externe.
la source