Aller au contenu

Atelier 4 - Navigation Entre Activités : Intent, Action, Bundle, Object

Page 1 sur 5Lecteur de document UniversityLib

Atelier 4 - Navigation Entre Activités : Intent, Action, Bundle, Object

Android Development · course

Fiche de révisionFiche de cours

Fiche de cours – Atelier 4 - Navigation Entre Activités : Intent, Action, Bundle, Object

Rédigée à partir de ce document, puis vérifiée avant publication.

Navigation entre activités android

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.

Comprendre les Intents et Actions

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.

Exemple d'utilisation d'Intent

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.

Utilisation des Bundles pour le passage de données

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 :

Étapes pour créer un projet Android avec Bundle

  1. Créer un projet Android Studio nommé IntentBundleDemo.
  2. Utiliser la plateforme Android 8.0 ou 7.0, sinon 6.0 ou 4.0.
  3. Configurer le package : tn.rnu.isi.
  4. Créer le fichier Java pour l'activité : Activity1.java.
  5. Créer le fichier layout de l'interface utilisateur : main1.xml.

Étapes à suivre pour l'implémentation

  1. Créer l'interface utilisateur pour Activity1 (dans main1.xml).
  2. Créer l'interface utilisateur pour Activity2 (dans main2.xml).
  3. Dans 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.
  4. Activity2 extrait les données d'entrée du paquet attaché à l'intent, effectue le calcul et retourne le résultat à Activity1.

Code source pour le projet IntentBundleDemo

Le code source du projet est disponible à l'adresse suivante :

IntentBundleDemo.rar

Création d'objets et sérialisation

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.

Étapes pour créer un projet avec des objets complexes

  1. Créer un projet Android Studio nommé IntentBundleComplexObjects.
  2. Utiliser la plateforme Android 8.0 ou 7.0, sinon 6.0 ou 4.0.
  3. Configurer le package : tn.rnu.isi.
  4. Créer le fichier Java pour l'activité : Activity1.java.
  5. Créer le fichier layout de l'interface utilisateur : main1.xml.

Création de la classe Person

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;
    }
}

Passage de l'objet dans le Bundle

Pour transmettre l'objet Person à Activity2, vous devez :

  1. Modifier Activity1 pour créer une instance de Person.
  2. Ajouter l'objet au bundle en utilisant putSerializable(key, object).
  3. Extraire l'objet du bundle dans Activity2.

Code source pour le projet IntentBundleComplexObjects

Le code source du projet est disponible à l'adresse suivante :

IntentBundleComplexObjects.rar

Points clés à retenir

  • Les intents sont utilisés pour démarrer des activités et passer des données.
  • Les bundles permettent de transmettre des données entre activités.
  • Les objets peuvent être sérialisés pour être passés dans un bundle.

Glossaire des termes clés

  • Intent : Message pour demander une action.
  • Bundle : Conteneur pour passer des données entre activités.
  • Sérialisation : Processus de conversion d'un objet en un format pouvant être stocké ou transmis.
  • Activity : Composant d'application qui fournit une interface utilisateur.

Questions fréquentes

Qu'est-ce qu'un Intent en Android ?

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.

Comment utiliser un Bundle pour passer des données ?

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.

Quelle est la différence entre Intent et Bundle ?

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.

Comment sérialiser un objet en Android ?

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.

Y a-t-il des exercices corrigés sur la navigation entre activités ?

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.

Toutes les révisions