Java pour les développeurs Android

Lancer un nouvel écran

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Apprenez à créer un écran de détail. Puis, changez d'écran et transmettez l'événement que vous souhaitez parcourir en détail.
08:49

Transcription

Dans cette vidéo, nous allons voir comment faire en sorte que, lorsque nous cliquons sur un évènement dans notre Recycle View, cela lance un nouvel écran affichant le détail et la description longue de cet évènement. Première étape : intercepter le clic, nous l'avons déjà réalisé dans une vidéo précédente. Lors d'un clic sur un évènement, nous nous retrouvons dans cette méthode en recevant notre filtre représentant notre évènement. Il va falloir maintenant réaliser le nouvel écran. Pour cela, nous allons créer une nouvelle activité. Clic droit, New, Activity, je vais passer par la galerie, comme cela, on retrouve la petite fenêtre habituelle de création de module. Sauf qu'ici, on ne crée qu'une activité. Je pars sur Activity, Next, je vais l'appeler « Détail Activity », le nom du fichier xml, je laisse le nom qui a été généré et je fais Fini. Qu'est-ce qui s'est passé derrière ? Il m'a créé le Détail Activity et il m'a créé le « Activity Detail. » Allons dans l'Activity Detail, commençons par l'IHM. Comme d'habitude, je vais partir sur un Inner Layout. Je passe en mode Design... et nous allons simplement mettre : de Text View. On va passer le Inner Layout en Mode Vertical. Notre premier Layout va représenter notre titre, je vais donc simplement faire la même chose que sur Activity Main, je vais récupérer comment j'ai fait ce Text View, je vais donc le Copier-Coller... et je vais le coller. Sauf qu'ici, ça sera pour le titre. Et pour le deuxième, comme la description peut dépasser l'écran, je vais mettre un Scroll View, qui est dans les Containers et je vais mettre mon Text View dans ce Scroll View. Je vais appliquer un petit padding à mon Text View, pour ne pas qu'il soit collé sur les bords et je vais lui appliquer un padding gauche devant et un padding droit devant. Voilà, il ne me reste plus qu'à mettre des ID : Text View, Titre, Text View, Détail. Voilà pour notre fichier xml. Allons dans le détail Activity. Je vais donc créer mes deux Text View, Titre des Text View, Détails. Faire les findViewById qui vont bien. Il va falloir maintenant récupérer le filtre représentant notre évènement sur lequel on a cliqué. Donc, je vais créer un pointeur vers un filtre. Pour récupérer ce filtre, on a la possibilité, quand on passe d'un écran à un autre écran, d'envoyer des paramètres. C'est ce que nous allons faire. Donc, ici, nous sommes dans le détail, nous allons voir comment récupérer ce paramètre. Pour cela, on va utiliser GetIntent : .get-extra, je vais expliquer ce que ça représente, GetIntent va représenter l'objet qui a permis de lancer cet écran. Dans cet objet, je vais récupérer get.extra qui correspond aux paramètres que j'aurai transmis. .get, et ici, je devoir donner le typage de mon objet. Il n'y a pas le typage Fi-ltre, il va y avoir le typage C-Réalisable. Que veut dire le mot-clé C-Réalisable, il veut tout simplement dire, que l'on peut mettre sous forme xml ou Jisel, un objet Java. Nous allons devoir dire qu'on récupère un C-Réalisable et lui donner une clé. Cette clé, quand on sera dans Main Activity et qu'on va lancer l'écran, on va associer à cette clé, le filtre correspondant. Et ici, on va ré-utiliser cette clé pour récupérer ce filtre. Alors, je vais créer une Variable Static qui va être : finale-static-string, je vais l'appeler Filtre Clé. Son contenu n'a pas d'importance, il faut que deux clés soient toutes différentes, donc ici, comme je n'en ai qu'une, je peux mettre n'importe quoi dedans, et grâce à cette clé, je récupère mon évènement. Et ici, je dis que je récupère un filtre. Là, il m'indique que mon objet Filtre n'est pas C-Réalisable, que je veux mettre un pointeur vers un C-Réalisable, un pointeur vers un filtre. Il va donc falloir rendre notre classe Filtre, C-Réalisable. Ce n'est vraiment pas compliqué, il suffit juste d'implémenter l'interface C-Réalisable. Implémente, C-Réalisable et il n'y a rien d'autre à faire. On indique juste, par cette interface, que notre objet peut être C-Réalisable. Je reviens dans Details-Activity, maintenant, il suffit de faire un Cast, notre objet filtre étant C-Réalisable, le cast fonctionne. Maintenant que j'ai mon objet filtre, je vais pouvoir mettre, dans mon titre, les éléments de mon filtre, à savoir, le nom de la manifestation. Et dans mon détail, la description longue. Ici, je n'ai pas eu besoin d'un attribut vu que je n'ai qu'une méthode, je peux laisser la barrière filtre avec uniquement la portée de méthode Uncreate. Voilà pour Details Activity. Maintenant, on a une Activity, on va devoir lancer cette activité, lui transmettre le filtre qu'on veut qu'elle affiche et se servir de la clé qu'on a créée. Nous voilà dans Main Activity, dans la méthode Unclic, on reçoit le filtre sur lequel on a cliqué et on va créer un objet Intent, dont j'ai parlé tout à l'heure qui prend deux paramètres. Le premier, le contexte, qui, on l'a vu à plusieurs reprises, était 10 car la classe Activity hérite de contexte. Et le deuxième, on va lui transmettre l'activité qu'on souhaite lancer. Ce qui est, en l’occurrence, DetailsActivity.classe. Cet Intent représente une demande au système de lancer l'écran Details Activity. En fait, ce n'est pas nous qui allons le lancer, on va demander au système de le faire. Et au passage, on va pouvoir lui rajouter des paramètres. Donc, on a du getextra, pour récupérer les paramètres. Instinctivement, on va dire, c'est set.extra et bien non, c'est put.extra. Alors, pourquoi put.extra ? Car set.extra, c'est quand on donne uniquement une valeur. Put.extra, c'est quand on donne une clé et une valeur. Je vais utiliser ma clé, donc, Details Activity, il faut que je la mette en public pour pouvoir y avoir accès, DetailsActivity.funky et derrière, je vais lui transmettre mon objet. Voilà, j'ai préparé mon objet à envoyer au système, il ne me reste plus qu'à l'envoyer au système. Pour cela, j'utilise la méthode d'Activity qui s'appelle start.activity, où je peux lui transmettre mon Intent. Il faut bien comprendre que cette instruction est une demande au système. C'est-à-dire, qu'une fois cette instruction faite, il ne s'est absolument rien passé. Il faut s'imaginer que le système ait reçu une notification en disant : créer l'activité, Details Activity. Mais il faut qu'elle termine de gérer le onclick et son animation, etc. Et, au bout d'un moment, elle va lancer l'écran Details Activity. Le « au bout d'un moment », se représente en millisecondes, mais, ce qu'il faut comprendre, c'est que ici, à cet endroit précis, la classe Details Activity n'a pas encore été instanciée. On peut donc maintenant tester ! Je clique sur Charger et voilà, j’atterris bien sur mon écran avec ma description longue. Si j'appuie sur la touche Précédent, je reviens à mon écran avec ma liste. Voilà, vous avez maintenant une application qui est capable d'appeler un web service, d'exploiter son résultat et vous êtes capables d'afficher plusieurs écrans.

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 !