Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

Découvrir le développement d'applications avec Android 5

Créer et remplir les cellules

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
À quoi sert le ViewHolder ? Vous allez pouvoir concevoir, gérer et remplir chacune des cellules de votre liste.
07:04

Transcription

Pour créer nos cellules, on a deux choses à faire, d'abord créer un ViewHolder, je l'ai fait ici. Je l'ai appeler GroupCardHolder il hérite de RecyclerView ViewHolder, et en constructeur, il reçoit une vue qu'il appelle itemView, qu'il fait passe à son parent ViewHolder, alors cette vue, ce sera la vue que l'on va créer dans notre layout. Et qu'on lui fera passer pour qu'il puisse la gérer. puisque vous vous rappelez, le ViewHolder, il n'est là que pour gérer une vue. C'est pas lui, la vue, lui c'est un petit objet qui gère la vue. qui elle est visible dans la liste. Donc ce qu'on va faire, c'est d'abord créer un fichier layout qui va nous permettre de concevoir graphiquement cette cellule, donc je vais l'appeler groupCell À l'intérieur, il m'a mis un linear layout on va laisser ça pour le moment. et ajouter un textView qui devrait en largeur être aussi grand que son parent, et en hauteur, envelopper son texte. On va ajouter un ID aussi, pour pouvoir y accéder depuis notre code, group title et je vais revenir dans le code qui est ici. Alors pour faciliter le travail de communication entre l'Adapter et le groupCardHoler, vous allez pouvoir préciser le type exact. de ViewHolder qu'utilise votre adapter voilà, c'est ici. Quand vous dites mon adapter hérite de RecyclerView Adapter, vous pouvez ouvrir des chevrons, et préciser le type. Et automatiquement, vous allez voir qu'il va invalider les signatures, voilà, il est plus d'accord. Maintenant, c'est plus abstrait, il sait exactement que le type de Holder retourné ce sera ça, et celui qui doit repasser en paramètre ici, c'est celui-là. Voilà, comme ça, vous avez directement les bon types de classes et ça vous aidera à appeler les bonnes méthodes. Encore comment ça va fonctionner ? Ici, on va devoir créer la vue, Je vous rappelle que onCreateViewHolder ce sera appelé uniquement pour les cellules visibles une première fois, et après on recyclera, on ne passera plus dans cette méthode-là. Cette méthode, elle va faire on va dire, le travail lourd de charger les fichiers XML, de créer les vues, de créer les ViewHolder, et de préparer tout ça. Donc je vais charger la première vue, celle qu'on a fait dans notre fichier de layout, cell et pour charger directement un fichier de layout, vous avez un objet qui s'appelle le layout Inflater. concret avec la méthode from et qui a besoin d'un contexte. Donc là, le contexte, ça va être mon activité. Alors, il faut faire attention parce que je suis dans une sous-classe de l'activité, je suis dans l'adapter. Pour préciser que le this ce n'est pas l'adapter, il faut préciser la classe, donc c'est groupListActivity. point this, pour bien expliquer de quel this on parle, et ensuite, vous avez une méthode Inflate, qui reçoit l'identifiant de la ressource, donc R point layout point, on l'avait appelé groupCell, voilà. Ensuite, La vue parent, vous la recevez en paramètre, voyez, elle est juste au-dessus, elle est ici. Il vous la donne au moment où il vous demande de créer cette cellule. on a qu'à la faire passer. Et ensuite, il faut dire false, pour ne pas qu'il essaie d'attacher directement à la cellule, que vous êtes en train de créer au parent. Ce sera le Recycler View qui va s'occuper de ça, c'est pas à nous de le faire. Et surtout n'oubliez pas de faire ça, parce que si par malheur vous laissez trop ou que vous ne précisez pas ce paramètre, vous allez avoir des soucis, et vous ne comprendrez pas pourquoi. Donc là, on a notre cellule qui a été créée donc on a notre linear layout avec un textView. Tout est vide à l'intérieur. Et pour le gérer, on va avoir besoin d'un ViewHolder. Donc c'est group CardHolder new groupCardHolder, et lui, il reçoit en paramètre la cellule. C'est son boulot. Une fois que c'est fait, vous retournez le Holder. Et notamment, le boulot principal du Holder, ça va être de remplir au besoin, chacune des sous-vues. Donc pour pouvoir les remplir, il va falloir que lui, il les connaisse. Donc on va créer une première variable pour notre textView. group title est égal à TextView Tiens, je vais le renommer ça, qu'on voit de quoi on parle. On parle bien de la cellule qu'on lui a passé en paramètre tout à l'heure. Donc cell.findView donc recherche parmi tes enfants, celui qui s'appelerait id.grouptitle Lui, il le connait pas, donc ALT Entrée il me propose de créer un field. Et je veux le mettre dans le CardHolder. J'ai pas renommé ça cell Voilà, donc lui, il a fait son boulot principal qui consiste à la création de référencer chacune des sous-vues. pour qu'après quand FinViewByID, c'est un petit peu long parce qu'il va parcourir tous ses enfants. Bon là, il en a qu'un mais ça peut être quand même assez long à chaque fois de parcourir. Donc il faut le faire à la création, comme ça quand plus tard on nous demandera de remplir on n'aura pas à rechercher à chaque fois la cellule pour chaque recyclage. Et on va le faire maintenant, on va faire une méthode publique, void On va l'appeler Layout for group. Et je lui fais passer le groupe affiché. Pour l'instant, cette cellule est très simple, ça va être group title, point. setText group getTitle Tout simplement, c'est la seule chose qu'il y a à faire. Et ça, je ne sais pas si vous avez deviné à quel endroit on va s'en servir. Là, on a créé une cellule vide, et quand on est ici, c'est pour chaque ligne, là, on connait le numéro de ligne qu'on est en train de dessiner, alors qu'on le savait pas forcément ici. Le numéro de ligne qu'on voulait dessiner, et ici Il nous passe le Holder, il nous le rend alors que c'est nous qui l'avions créé juste avant et on va appeler Layout for group et là, on va chercher dans la liste, si j'arrive ici, c'est que j'ai forcément le nombre d'éléments. getPosition qui correspond en fait au numéro du groupe à cette ligne. Donc en gros, je préviens mon holder qu'il doit changer tout son dessin, qui doit se remplir avec les données de ce groupe-là. On va essayer pour vérifier que tout est fonctionnel. Si j'appuie ici, voilà, j'ai uniquement famille je dois avoir un problème de layout que je vais regarder tout de suite. Ah, si je les ai, c'est qu'ils sont trop grands, voilà, ça marche ! Voyez, là j'ai mon famille en premier, je peux scroller, je vois amis et je vois travail. Donc là mon groupe doit être trop grand, je pense qu'il doit y avoir dans ma cellule ici, quelque chose que je peux améliorer. Ah mais si je le vois il est là, match_parent. On va le faire de suite. wrap du coup, ça se collera plus si je change. ce qui est un peu dommage, vous allez voir. là, quand je vais le lancer voilà, ils sont là mais du coup ça scrolle plus, puisqu'il y a que 3 éléments L'avantage de ce petit oubli c'est qu'on a pu voir comment marchait le scroll Dans le cours suivant, nous allons essayer de mettre en forme ces cellules pour que ce soit beaucoup plus joli, et que ça ressemble à une application réelle.

Découvrir le développement d'applications avec Android 5

Développez des applications mobiles pour Android. Créez un projet de A à Z sous Android Studio, de l’installation du kit de développement, jusqu’à sa publication sur le Play Store.

3h17 (39 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Android Android 5
Spécial abonnés
Date de parution :17 mars 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !