Atelier 4 - Navigation Entre Activités : Intent, Action, Bundle, Object
Atelier 4 - Navigation Entre Activités : Intent, Action, Bundle, Object
Android Development · course
Fiche de révisionFiche de cours
Rédigée à partir de ce document, puis vérifiée avant publication.
La navigation entre activités en Android est essentielle pour créer des applications interactives. Cet article explore les concepts d'Intent, d'Action, de Bundle et d'Objet, en fournissant des exemples pratiques et des étapes de mise en œuvre. Vous apprendrez comment passer des données entre activités, sérialiser des objets et utiliser des intents pour démarrer des activités.
Les intents sont des messages utilisés pour demander une action d'une autre composante d'application. Ils peuvent être explicites ou implicites. Les actions définissent ce que l'intent doit faire. Par exemple, pour sélectionner un contact, on utilise :
Intent.ACTION_PICK
Pour afficher un contact, on utilise :
Intent.ACTION_VIEW
Ces actions nécessitent que des contacts soient préalablement enregistrés sur l'appareil.
Voici un exemple simple d'utilisation d'un intent pour passer à une autre activité :
Intent intent = new Intent(this, Activity2.class);
startActivity(intent);
Dans cet exemple, nous créons un nouvel intent pour démarrer Activity2.
Les bundles sont utilisés pour passer des données entre activités. Par exemple, dans l'activité 1, vous pouvez recueillir deux valeurs et les envoyer à l'activité 2 pour calculer leur somme. Voici les étapes à suivre :
tn.rnu.isi.Activity1.java.main1.xml.Activity1 (dans main1.xml).Activity2 (dans main2.xml).Activity1, après avoir cliqué sur le bouton, les données de l'interface utilisateur sont placées dans un paquet et envoyées à Activity2.Activity2 extrait les données d'entrée du paquet attaché à l'intent, effectue le calcul et retourne le résultat à Activity1.Le code source du projet est disponible à l'adresse suivante :
Dans cette section, nous allons étendre Activity1 pour créer un objet Person et le transmettre à Activity2 dans un bundle IPC en tant que données sérialisées.
tn.rnu.isi.Activity1.java.main1.xml.Voici comment créer une classe Person qui implémente Serializable :
package tn.rnu.isi.intentbundlecomplexobjects;
import java.io.Serializable;
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
private String firstName;
private String lastName;
public Person(String firstName, String lastName) {
super();
this.firstName = firstName;
this.lastName = lastName;
}
public String getFullName() {
return firstName + " " + lastName;
}
}
Pour transmettre l'objet Person à Activity2, vous devez :
Activity1 pour créer une instance de Person.putSerializable(key, object).Activity2.Le code source du projet est disponible à l'adresse suivante :
IntentBundleComplexObjects.rar
Un Intent est un message utilisé pour demander une action d'une autre composante d'application. Il peut être explicite ou implicite, selon que vous spécifiez ou non la composante cible.
Pour passer des données entre activités, vous pouvez créer un Bundle, y ajouter des valeurs avec putExtra, puis l'attacher à un Intent avant de démarrer l'activité cible.
Un Intent est utilisé pour démarrer une activité, tandis qu'un Bundle est utilisé pour passer des données entre ces activités. Un Intent peut contenir un Bundle comme une de ses propriétés.
Pour sérialiser un objet en Android, la classe de l'objet doit implémenter l'interface Serializable. Cela permet de convertir l'objet en un format pouvant être transmis via un Bundle.
Oui, des exercices corrigés sont disponibles dans le cadre de projets comme IntentBundleDemo et IntentBundleComplexObjects, qui illustrent la navigation entre activités et le passage de données.