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

Utiliser les intents

Testez gratuitement nos 1249 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez apprendre à utiliser les intents pour naviguer entre vos activités et celles des autres applications.
07:22

Transcription

Nous avons vu dans la vidéo précédente, que les activités devaient passer par un intent pour lancer les activités il n'y a pas de contacts directs entre les activités, et le seul moyen, c'est de modéliser une intention via un objet intent, de l'envoyer au système et que ce système se charge lui-même de lancer la nouvelle activité en lui transférant les informations dont elle a besoin. Donc au niveau des intents, il en existe deux types, les intents explicites et les intents implicites. On va commencer par l'explicite. L'explicite, c'est le cas le plus courant, vous avez une activité de votre application, vous souhaitez lancer une seconde activité, que vous connaissez, et vous souhaitez lui passer des informations. Alors imaginons que vous avez un bouton dans l'activité A et quand vous appuyez dessus vous souhaitez afficher l'activité B à la place de l'activité A. Lorsque j'appuie sur le bouton, on va créer un intent. En précisant de façon explicite que l'on veut lancer l'activité B. Dans l'intent, sera insérée le nom de la classe de destination. On peut, si on le souhaite, ajouter des données donc il y a une propriété data et une propriété extra. Ça peut contenir une URI, donc un indicateur de ressources, sous format qui ressemble à une URL, on s'en sert très peu pour les intents explicites, ce sera plus souvent utiliser pour les intents implicites, mais on peut s'en servir aussi pour les explicites si on le souhaite. Par contre, ce qu'on va souvent utiliser, ce sont les extras. Les extras, c'est un dictionnaire à clé-valeur. C'est à dire que vous allez pouvoir ajouter autant d'extras que vous voulez, avec la fonction put extra, qui permet dans cet intent, d'insérer des clés-valeurs donc pour une clé au format chaine de caractères, vous aurez une valeur, soit on peut mettre des booléens, des objets, des variables, des entiers, des chaines de caractères. La seule chose que vous ne pouvez pas mettre ce sont des objets qui ne sont pas sérialisables, c'est à dire qu'il est fortement déconseillé de mettre des objets entiers dans les intents parce qu'ils seront sérialisés donc ils vont convertis en un flux binaire qui sera stocké à l'intérieur et ensuite, ils seront désérialisés à l'arrivée. Donc ce sont des objets volumineux, ça peut être très couteux. Il vaut mieux souvent fournir peut-être l'identifiant d'un objet, uniquement ou sous format entier, et l'activité B va se charger de retrouver cet objet, via un singleton, ou un autre objet qui va lui permettre de gérer des données qui sont sous-jacentes. Donc une fois que vous avez créé cet intent, insérer à l'intérieur toutes les données qui seront nécessaires à l'activité B pour s'afficher correctement, vous lancez cet intent, c'est l'image qu'on pourra avoir alors la méthode à appeler, elle s'appelle Start Activity, et donc vous envoyez cet intent au système Le système va résoudre l'activité qui correspond le mieux à votre intention. Pour un explicite, ce n'est pas compliqué, c'est uniquement celle que vous lui avez donné. Donc il va lancer lui-même la nouvelle activité, et lui faire passer l'intent à son tour. Dans l'activité B vous pourrez dépaqueter les extras ou les datas; que vous aurez mis à l'intérieur. Pour configurer l'activité avant son lancement. Deuxième type d'intent, c'est l'intent implicite. Vous avez une intention de réaliser une action, mais vous n'avez pas une activité capable de réaliser ça. Généralement, on va utiliser des actions toutes prêtes Donc, à la place de mettre le nom de l'activité de destination, vous mettrez le nom d'une action. Par exemple, si vous voulez ouvrir une page web, vous avez une constante qui est déclaré dans la classe intent, qui est action view, donc vous ajoutez votre intent en disant action égal intent.actionView, et pour celle-ci, la norme c'est de passer l'URL de la page web à ouvrir dans le champ data Une fois que c'est fait, donc nous, j'ai fait exemple avec View et la page web de Google, j'envoie ça au système, le système va à son tour lister toutes les activités présentes sur le téléphone, ça peut être votre application à vous, les applications du système ou des applications tierces qui sont capables de répondre à l'action intent action view. Imaginez que la personne ait Firefox et Chrome d'installés, donc ces deux-là sont candidats à l'ouverture de cet intent donc soit il va proposer à l'utilisateur de choisir, ce qui se passe souvent la première fois qu'on a ce genre de cas, et l'utilisateur va pouvoir choisir entre Firefox et Chrome, ou d'autres, s'il y en a d'autres, et il pourra aussi, s'il le souhaite, mémoriser ce choix, via une case à cocher avant d'accepter, et dans le temps, pour les fois suivantes, d'automatiquement choisir l'activité qui correspond le mieux. Imaginons que l'utilisateur choisisse Firefox, il va lancer l'activité de Firefox, lui transférer l'intent elle va dépaqueter l'URL dans data et l'afficher dans le navigateur. Nous allons voir un exemple réel pour ça. Je reprends donc notre projet adressBook, que nous avions pris tout à l'heure, et nous allons ouvrir l'activité principale, alors je vous rappelle que cette activité principale c'est uniquement une page vierge avec un texte hello world ici, et on a un bouton flottant ici, qui pour l'instant ne fait aucune action. alors pour ouvrir votre fichier, vous avez plusieurs moyens, vous pouvez aller dans l'explorateur, parcourir les fichiers et trouver le fichier qui vous intéresse, nous c'est le Main Activity, donc je peux cliquer deux fois ici. Ce qui est souvent recommandé, c'est d'utiliser les raccourcis clavier, alors je vais carrément masquer pour avoir plus de place, et vous avez déjà les raccourcis essentiels qui sont marqués ici. Je fais un double clique sur shift. Si je commence à taper main, voyez il me propose tout ce qui contient main à l'intérieur. Donc j'ai des fichiers etc, mais moi ce qui m'intéresse, c'est recent files ou classes main activity C'est un moyen beaucoup plus rapide d'ouvrir vos fichiers. Si vous connaissez le nom, vous pouvez taper le début ou la fin du mot. Et même taper le début et la fin, en laissant des choses au milieu, généralement, il filtre assez bien. Donc là, j'arrive dans mon activité, ce qu'on va faire, c'est ce bouton rose, qui pour l'instant affiche un texte sans aucune action, puisque l'action est nulle, on va le remplacer. donc là, on va dire : ouvrir la recherche Google je vais juste mettre recherche Google, et l'action je vais l'appeler ouvrir Donc ces Floating Action Buttons ils sont conçus pour afficher automatiquement ces espèces de tiroir, et vous pouvez ajouter une ation à l'intérieur, ça sert un petit peu de confirmation, alors je mets un petit texte, et une fois que j'aurai mis une action, j'aurai un bouton qui va apparaitre ici. Donc ce bouton, c'est ici, il s'appelera ouvrir, et je peux mettre donc, un clic listener là aussi, qui va gérer ce qui se passera si on appuie sur le bouton ouvrir. Et sur le onClic, je vais créer donc un intent implicite, j'ai qu'une seule activité pour l'instant, on verra plus tard pour les explicites, donc ouvrir, open web page c'est égal un nouvel intent, il y a plusieurs constructeurs, moi celui qui m'intéresse, c'est celui qui reçoit une action actionView et une URI, donc URI, c'est une classe spéciale qui permet de gérer plusieurs types de chemins de ressources. Et là, je vais lui http:// world wide web google.fr Mon intent est créé, si je veux lancer l'activité qui correspond, donc en gros, j'ai empaqueter toutes les données nécessaires pour trouver la bonne activité et qu'elle ait assez de données pour fonctionner, je vais maintenant appeler startActivity, et lui passer l'intent. Voilà, on va lancer l'application pour voir si ça fonctionne. Je clique sur mon bouton, on voit qu'il a bien changé le texte, recherche google, ouvrir et effectivement, alors il ne m'a pas donné le choix, puisque c'est un émulateur, il ne devait y avoir qu'une seule application capable d'ouvrir les pages web. Et donc il a ouvert directement dedans. On voit que je suis sorti de mon application, je suis passé sur une autre activité, et si je fais retour, je reviens dans mon application. Donc on a vu l'intérêt de ces intents implicites. et on verra plus tard comment utiliser des intents explicites quand on va avancer dans notre application et qu'on souhaitera passer d'un écran à un autre.

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 !