Vous êtes sur la page 1sur 26

Module (M17) :

Programmation mobile
Pr. Yassine SADQI

Department of Maths and Computer Science


Laboratoire d’Innovation en Mathématiques,
Applications & Technologies de l’Information
(LIMATI)
y.sadqi@usms.ma
Chapitre 3 : Les Activités et intents
Android

Pr. Yassine SADQI 2


Chapitre 3

• Dans ce chapitre nous découvrons:


oles activités (activities), qui sont l’une des principaux éléments de
construction de l'interface utilisateur d’une application Android;
oles intentions implicites et explicites (intents) qui sont utilisées pour
communiquer entre les activités;
oles événements de rappel (callback events) que vous pouvez
implémenter pour effectuer des tâches à chaque étape du cycle de vie de
l'activité.

Pr. Yassine SADQI 3


I. Introduction

4
I.1 Qu’est ce qu’une Activité ?

• C’est l'équivalent d’une page web dans le cas des apps web
• Représente une fenêtre, une hiérarchie de vues.
o Pour chaque fenêtre de votre application, vous devez créer une activité.
• Une activité Android regroupe deux concepts:
1. L’interface utilisateur, qui pourra être définie soit :(1) dans le code de l’activité,
ou bien (2) dans un fichier XML pour une meilleure organisation.
2. Code de traitement de l’activité et la gestion du cycle de vie de l’activité qui
sont implémentés en Java, dans une classe héritant de la classe mère Activity ou
bien AppCompatActivity;

Pr. Yassine SADQI 5


I.2 Que fait une activité?

• Gère les interactions de l'utilisateur, telles que les clics de bouton, l'entrée de
texte ou la vérification de connexion
• Chaque activité est dédiée à un ensemble cohérent d'actions, mais
toujours centrées vers un même objectif.
ocomme l'envoi de courrier électronique
ol'obtention d'instructions,
o….

Pr. Yassine SADQI 6


I.2 Que fait une activité?

• Exemple: En cliquant sur un élément de la liste à gauche, on ouvre une nouvelle activité

Pr. Yassine SADQI 7


I.3 Apps & Activités

• Les activités sont liées pour créer une application


• Une application Android est une collection
d'activités que vous créez ou que vous réutilisez
depuis d'autres applications.
• La première activité qui s’affiche à l'utilisateur est
généralement appelé « Main Activity ».
• Les activités peuvent être organisées dans des
relations parent-enfant dans le manifeste
d'Android pour faciliter la navigation.

Pr. Yassine SADQI 8


I.3 Code Java de base d’une activité

package com.example.yassine.hellowwolrd_app;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Pr. Yassine SADQI 9
II. Etapes de création et de
configuration d’une activité
Android

10
II.1 Vue d’ensemble

• Quatre étapes à suivre, afin de définir une


nouvelle activité Android:
1. Réaliser le layout (UI) de l’activité
2. Définir la classe Activité Java
3. Connecter l’activité avec le layout
 Set content view in onCreate()
4. Déclarer l'activité dans Android
Manifest

Pr. Yassine SADQI 11


II.2 Définir le layout

Pr. Yassine SADQI 12


II.3 Définir la classe Java

public class MainActivity extends AppCompatActivity


{
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
}
}

La classe AppCompatActivity est une sous-classe d'Activité qui vous permet d'utiliser des
fonctionnalités actuelles de l'application Android, tout en permettant à votre application
d'être compatible avec les périphériques exécutant d'anciennes versions d'Android.

Pr. Yassine SADQI 13


II.4 Connecter l’activité avec le layout

public class MainActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
} Resource is layout in this XML file

La méthode void setContentView (View vue) permet d'indiquer l'interface graphique de l’activité.

Pr. Yassine SADQI 14


II.5 Déclarer l’activité dans le Manifest

• Pour qu’une application puisse utiliser des activités, vous devez déclarer les
activités et certains de leurs attributs dans le fichier
« AndroidManifeste.xml ».
1. Etape 1: Déclarer des activités
2. Etape 2: Déclarer les filtres d’intention (intent filter)
3. Etape 3: Déclarer les autorisations: étape optionnelle

Pr. Yassine SADQI 15


II.5 Déclarer l’activité dans le Manifest

• Etape 1: Déclarer l’activité


o Pour déclarer une activité: <manifest ... >
<application ... >
 Ouvrez votre fichier manifeste <activity android:name=".MainActivity" />
 Ajoutez un élément <activity> en tant ...
qu'enfant de l'élément <application>. </application ... >
...
 L'élément <activity> comprend un
</manifest >
certain nombre d'attributs pour définir
les propriétés de l'activité telles que
son étiquette, son icône ou son thème.
o Le seul attribut requis est « android:
name », qui spécifie le nom de classe de
l'activité (par exemple, "MainActivity").

Pr. Yassine SADQI 16


II.5 Déclarer l’activité dans le Manifest

• Etape 2: Déclarer le filtre d’intent


o L'élément <activity> peut également inclure des déclarations pour les filtres
d'intent. Les filtres d'intention spécifient le type d'activités que votre activité
acceptera.
o Les filtres d'intents doivent inclure au moins un élément <action>, et peuvent
également inclure des éléments optionnelles telles que <category> et <données>.

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

Pr. Yassine SADQI 17


III. Généralités sur
les Intents Android

18
III.1 Qu’est ce qu’un « intent »?

• Un intent est un message de communication qui décrit:


o une opération à effectuer pour demander une action à partir d'un autre composant d'application
(activité, service, …) via le système Android.
o Il s’agit d’une structure de données passive contenant une description abstraite d’une
action à exécuter.

Créateur (ex. Activity1) Composant de l'application (ex:


une autre activité Activity2

Intent Action

Système Android

Pr. Yassine SADQI 19


III.2 Structure d’un intent

• Techniquement, un intent est en fait un objet qui contient sept Objet Intent
champs:
Composant
1. Composant: Ce champ permet de définir le destinataire de
Action
l'intent.
Catégorie
2. Action: l’opération qu’on désire que le destinataire fasse.
Données
3. Données (Data): Donnée sur laquelle réaliser l'action sous
forme d'URI (setData()) ou d'un type MIME (setType())
4. Catégorie: permet d'apporter des informations
supplémentaires sur l'action à exécuter et le type de
composant qui devra gérer l'intent.
https://developer.android.com/reference/android/content/Intent
Pr. Yassine SADQI 20
III.2 Structure d’un intent

Objet Intent
5. Type: pour indiquer quel est le type des données incluses.
6. Extras: pour ajouter du contenu à vos intents afin de les faire Composant
circuler entre les composants.
Action
7. Flags: permettent de modifier le comportement de l'intent.
Catégorie
• Puisque un intent est une action associée a des données, il faut au moins Données
fournir deux informations essentielles: action et données
Type
o Les autres champs sont optionnel. Extras
Flags

https://developer.android.com/reference/android/content/Intent
Pr. Yassine SADQI 21
III.3 Actions d'Intent prédéfinies
Une action est une constante qui se trouve dans la classe Intent et qui commence toujours par « ACTION_ » suivi
d'un verbe.
Intitulé Action Entrée attendue

ACTION_VIEW Permet de Une adresse e-mail sera visionnée dans l'application pour les e-mails, un numéro
visionner une de téléphone dans le composeur, etc.
donnée
ACTION_WEB_SEARCH Effectuer une S'il s'agit d'un texte qui commence par « http », le site s'affichera directement,
recherche sur sinon c'est une recherche dans Google qui se fera
internet
ACTION_DIAL Pour ouvrir le Un numéro de téléphone
composeur de
numéros
téléphoniques
ACTION_MAIN action principale
https://developer.android.com/reference/android/content/Intent
Pr. Yassine SADQI 22
III.4 Intents implicites et explicites

• Il existe deux types d’intent dans Android:


oIntent explicite: Démarre une activité spécifique
 Exemple: L'activité principale lance une autre activité nommée
« ViewShoppingCart »
oIntent implicite: Demande au système de trouver une activité capable
de gérer une action spécifique.
• La façon dont sont renseignés les champs d’intent détermine la nature ainsi
que les objectifs de l'intent.

Pr. Yassine SADQI 23


III.5 Que peuvent faire un intent?

1. Start activities
o Exemple1: On clique un boutton est l’intent lance une nouvelle activité
o Exemple 2: On clique sur « Partager » l’intent ouvre une application qui nous permet
de poster une photo
2. Start services
o Exemple: Lancer le téléchargement d'un fichier en arrière-plan
3. Deliver broadcasts
o Exemple: Le système informe tout le monde que le téléphone se charge maintenant

Pr. Yassine SADQI 24


TP3

Pr. Yassine SADQI 25


Fin de la séance

26

Vous aimerez peut-être aussi