Java pour les développeurs Android

Créer un callback

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Créez un callback en vous servant d'une interface. Faites également en sorte que PersonAdapter indique à MainActivity sur quelle personne l'utilisateur a cliqué.
06:42

Transcription

Dans la séquence précédente, je vous ai montré comment obtenir un pointeur vers la personne sur laquelle on a cliqué. Cela se passe dans PersonneAdapter. Le rôle de PersonneAdapter, c'est d'afficher des données donc, afficher notre liste. Elle est en relation avec l'IHM, elle intercepte des événements, comme un clic sur une ligne, mais son rôle n'est pas de manipuler les données. Son rôle n'est donc pas de modifier la personne cliquée par exemple. Cela va plutôt être le rôle du controller à savoir MainActivity. Il va donc falloir transmettre à MainActivity la personne sur laquelle on a cliqué. Il faut imaginer que notre PersonneAdapter puisse être utilisé par plusieurs activités différentes. Sauf que, dans une activité, si on clique, ça supprime. Dans une autre, si on clique, on voit le détail, et ainsi de suite. On peut le faire par simplicité mais si on veut bien séparer en couches, on va donc transmettre notre clic vers MainActivity. Comment va-t-on faire cela ? Eh bien, à l'aide d'un callback. ce que nous allons voir dans cette vidéo. Je vous rappelle, un callback c'est un émetteur, un récepteur et un moyen de communication. Notre émetteur, ce sera PersonneAdapter qui va émettre quand on a cliqué sur une ligne. Notre récepteur, ce sera MainActivity qui va s'abonner à PersonneAdapter et quand on va cliquer sur une ligne, va déclencher une méthode dans la classe MainActivity. Et notre moyen de communication, ce sera une interface. Commençons par faire cette interface. public interface que je vais appeler au lieu de onClickListener, on va appeler onPersonneListener. Notre onPersonneListener qui représente un peu notre onClickListener, on va avoir une méthode qui va transmettre le clic. Donc, dans onClickListener, on avait la méthode onClick. Nous, on va aller un peu plus loin, on va faire onClick, sauf qu'au lieu de transmettre la vue sur laquelle on a cliqué, on va pas transmettre le linear layout, ça n'a pas d'intérêt, on va transmettre notre personne. C'est une interface, donc pas de contenu. Voilà, ici, nous avons créé notre moyen de communication. On va transmettre un événement, un clic sur une personne. Maintenant, il va falloir préparer notre émetteur. Notre émetteur, il a besoin d'un pointeur vers quelqu'un à qui émettre. On va donc créer un pointeur vers un objet qui implémente onPersonneListener. Cet objet, on va pas le créer ici. Le but, c'est que quelqu'un s'abonne à PersonneAdapter. et qu'on y appelle sa méthode onClick. Dans mon constructeur, je vais ajouter un paramètre qui prend un objet qui implémente onPersonneListener. Pour cela, je vais faire un Alt+Entrée. Je vais utiliser Alt constructeur paramètres. Refractor. Voilà, il m'a donc rajouté un paramètre, il m'a rajouté le lien. Maintenant que j'ai un pointeur vers un objet qui implémente onPersonneListener, je peux appeler sa méthode onClick. A quel moment on va appeler la méthode onClick ? Justement, quand on a cliqué. Quand on aura cliqué sur notre ligne. C'est-à-dire dans notre onClickListener sur notre root. Ici, au lieu d'émettre un toast, je vais pouvoir transmettre directement la personne cliquée à l'aide de mon fameux call back. onPersonneListener.onClick de ma personne. Une bonne pratique consiste à vérifier que notre call back est différent de nul. Car, si notre call back est nul, c'est-à-dire qu'on nous a transmis nul dans le constructeur, je vais appeler la méthode onClick sur un objet nul et je vais me retrouver avec une NullPointerException et faire crasher mon application. Voilà comment émettre. Nous avons créé un moyen de communication grâce à l'interface onPersonneListener. Nous avons donné la possibilité de s'abonner par le constructeur. On pourrait très bien comme c'est fait pour les boutons, créer un setter, comme on utilise le set onClickListener ici, on aurait set onPersonneListener, le principe est le même. Voilà donc pour notre émetteur. Passons au récepteur, à savoir MainActivity. Nous avons maintenant une erreur et il attend qu'on s'abonne à son callback. De la même manière que pour m'abonner au bouton, où j'ai fait un set onClickListener, et que j'ai transmis la classe courante, ici, je vais faire exactement pareil, je vais transmettre un this pour m'abonner au callback de PersonneAdapter. Je vais faire Alt+Entrée avec le curseur sur mon this. Il va me proposer d'implémenter la méthode onPersonneListener, du coup, il va générer la méthode onClick et j'ai maintenant une méthode onClick qui me donne en paramètres la personne cliquée. Je vais maintenant remettre mon toast ici et vérifier que mon toast apparaît. J'ajoute un élève, je clique, j'ai toujours mon toast qui apparaît. Nous avons réussi à transmettre de l'Adapter à MainActivity la personne cliquée grâce à un callback sous forme d'interface. Il existe d'autres façons de réaliser un call back. Je vous ai présenté ici la plus courte. Je vais clôturer ce chapitre en mettant un peu d'ordre dans nos fichiers. Je vais donc créer un premier package que je vais appeler model. On va y mettre nos beans. A l'intérieur du paquet du model, il y aura à quoi ressemblent nos informations et comment on fait pour y accéder. C'est-à-dire c'est ici qu'on mettra les accès vers nos webservices, les accès vers notre base de données, et ainsi de suite. Nous avons un deuxième package view, qui, lui, va représenter l'affichage. Et on va faire le troisième package controller, dans lequel on va mettre MainActivity. Voilà, j'ai séparé en couches mon projet. Dans le package view, je vous ai dit qu'on y gère l'affichage. Mais dans un projet Android, l'affichage est aussi géré par les fichiers XML. Vous savez maintenant travailler avec un RecyclerView et un callback.

Java pour les développeurs Android

Prenez en main la syntaxe et les concepts de Java pour vos développements d’applications pour Android. Abordez les variables, les chaînes de caractères, les conditions, etc.

7h01 (65 vidéos)
Aucun commentaire n´est disponible actuellement
Logiciel :
Spécial abonnés
Date de parution :24 avr. 2017

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 !