Académique Documents
Professionnel Documents
Culture Documents
Zayneb Waari
Zaineb.waari@gmail.com
PLAN DU COURS
1 Les bases indispensables à toute
application
2Création d'interfaces graphiques
3Les Intents et Broadcast Receiver
4Vers des applications plus complexes
03 01
SDK JAVA
&
XML
02
POURQUOI ANDROID ?
Stockage Réseau
Android
Localisation
Multimédia
COMPOSITION D’UNE
APP ANDROID
Activités Permissions
Services Ressources
Fournisseurs de Intent /
contenu Broadcast Receiver
AndroidManifest.xml
ANDROID ACTIVITY
android.app.Activity
* Vues et Contrôles
Button Spinner ListView
TextView
ImageView ProgressBar
EditText CheckBox
……..
ANDROID ACTIVITY
android.app.Activity
User
Interface
Cycle de vie d’une Activité
CYCLE DE VIE D’UNE
ACTIVITÉ
1 Démarrage : onCreate()
2 Démarrage Ouverte : onStart()
3 Ouverte Suspendue : onPause()
4 Suspendue Arrêtée : onStop()
5 Suspendue Ouverte : onResume()
6 Arrêtée Ouverte : onRestart()
7 Arrêtée Tuée : onDestroy()
Ma
Première
Application
Basic avec un
bouton : action
bottom
Navigation à
gauche
Rend
l’application
compatible
avec les
langues
Récupérer le
constructeur
Afficher le
design de
l’application
(R=ressource)
L’ajout du fichier Activity_main.xml
LES RESSOURCES
Toutes les ressources sont accessibles à travers la
classe R, dés qu'elles sont déclarées dans le fichier
XML.
R.type_ressource.nom_ressource
Strings Colors
Images Dimensions
Type Description
<resources>
<string name="hello"> Hello </string>
<string name="app_name"> This is my App </string>
</resources>
RESOURCES : COLORS
<resources>
<color name="Mybleu"> #0000FF </color>
<color name="MyWhite"> #FFFFFF </color>
</resources>
RESOURCES :
DIMENSIONS
Les dimensions de l'application sont situées dans
res/values/dimens.xml
<resources>
<dimen name="horizontal_margin"> 16dp </dimen>
<dimen name="vertical_margin"> 16dp </dimen>
</resources>
2
Création d‘Interfaces
Graphiques
LAYOUT EDITOR
Un outil qui permet d'effectuer les mises en page de
manière graphique.
1 Fenêtre de Prévisualisation
2 Barre d’outils
3 Palette des éléments graphiques
1 LinearLayout
2 RelativeLayout
3 GridLayout
4 ScrollView
LES LAYOUTS
1 LinearLayout
Les conteneurs ou les widgets
appartenant à ce Layout sont alignés
en ligne soit horizontalement ou
verticalement.
Orientation du Layout
• android:orientation=’horizontal/vertical’
LES LAYOUTS
2 RelativeLayout
Le principe du RelativeLayout est de placer les éléments selon d’autres
éléments du conteneur.
Le GridLayout permet de placer des éléments sur une grille, très pratique
pour des tableaux. Deux options s’avère nécessaire :
android:columnCount et android:rowCount qui correspondent au nombre
de lignes et de colonnes sur la grille.
LES LAYOUTS
4 ScrollView
c'est un placement utilisant le scroll pour gérer les débordements.
Vertical
Horizontal
LES WIDGETS
Une vue qui ne peut pas englober d'autres vues est appelée Widget
Button ListView
TextView
RadioButton
ImageView
EditText
……..
LES WIDGETS
Attributs en commun
layout_width : définit la largeur que prend la vue (la place sur l'axe
horizontal).
layout_height : définit la hauteur qu'elle prend (la place sur l'axe
vertical)
Ces deux attributs peuvent prendre une valeur parmi les trois suivantes :
o fill_parent (match_parent)
o wrap_content
o Valeur numérique ( en dp :Density-
independant Pixel)
LES WIDGETS
Autres Attributs
android:id android:text
android:layout_weight
android:hint android:textSize
android:textStyle
android:inputType android:textColor
android:src
android:lines android:typeface
android:padding
android:layout_marginXXX
LES WIDGETS
Identification des Widgets:
Les «
Activity »
41
Qu'est-ce que
Activity ?
• C’est l’interface utilisateur qui apparaît
sur l’écran d’un appareil Android, ils sont
présentées à l'utilisateur sous forme de
fenêtres en plein écran.
• Une application est généralement
composée de plusieurs écrans liés de
manière approximative. Chaque écran est
une activité.
est-ce que une Activity
•
?
En règle générale, « MainActivity.java »
est spécifiée comme activité "principale",
elle est présentée à l'utilisateur lors du MainActivity SecondActivity
lancement de l'application.
Lorsque ?
de base "last in, first out".
l'utilisateur termine
l'activité en cours et appuie sur le
bouton précédent, cette activité est
détruite et l'activité précédente
reprend.
Qu'est-ce que une Activity
Navigation et pile "Retour"
?
NavController contient une pile "Retour" contenant les destinations
que l'utilisateur a consultées.
Lorsque l'utilisateur accède aux écrans de votre application,
NavController ajoute et supprime des destinations vers
et depuis la pile "Retour".
En tant que pile, la pile "Retour" est une structure de données
de type "dernier arrivé, premier sorti".
NavController déplace donc les éléments vers le haut
et les fait sortir du haut de la pile.
Qu'est-ce que une Activity
?
• Voici les principaux points à prendre en compte concernant le
comportement de la pile "Retour" :
50
4
Les Intents
&
Broadcast
Receiver
PRINCIPE DES INTENTS
Le but des Intents est de déléguer une action à un autre composant, une
autre application ou une autre activité de l'application courante.
PRINCIPE DES INTENTS
•Les Intent sont des messages asynchrones qui permettent
d’envoyer et recevoir des messages (éventuellement avec des données)
pour déclencher une action, dans un composant d’une même
application (exemple : une Activity) voir même dans une autre
application.
TYPES DES INTENTS
Une intention est essentiellement un message que l’on passe à
Android pour lui dire "je veux que tu fasses... quelque chose".
Cette "quelque chose" dépend de la situation :
on sait parfaitement de quoi il s’agit (Intent
Explicite)
on ne le sait pas (Intent Implicite)
PRINCIPE DES
INTENTS
• Android prend en charge les Intents explicites (Explicit)
et des Intents implicites (Implicit).
INTENTS
EXPLICITES
Intents Pour Une Nouvelle Activité
Nom de l’ intention Activité à visiter
Lancer l’ intention
INTENTS
EXPLICITES
Il spécifie le composant à appeler à partir de l'activité. En d'autres
termes, nous pouvons appeler une autre activité dans Android par
intention explicite. Également il peut transmettre des informations.
57
AJOUTER DES
INFORMATIONS
Les Intent permettent de transporter des informations à
et putExtra.
AJOUTER DES
INFORMATIONS
Activity 1
Intent call = new Intent(getApplicationContext(), Activity2.class);
call.putExtra(“key", “value");
startActivity(call);
Activity 2
Bundle extras = getIntent().getExtras();
Action à réaliser
Les données
Une catégorie
INTENTS
IMPLICITES
Contrairement a l'intention explicite, il ne spécifie pas le
composant. Dans ce cas, l'intention fournit des informations
sur les composants disponibles fournis par le système qui
doit être appelé.
61
ACTIONS À RÉALISER
PARAMÈTRES
INTITULÉ ACTION
ENTRÉES
Action synonyme à
ACTION_DEFAULT
ACTION_VIEW
Il est important de noter qu'un MIME est composé d'un type et d'un sous type. Le
type est ici "text", le sous type est "plain".
DONNÉES
URI :
Téléphonie
Web
…
CATÉGORIES
Les catégories sont utilisées dans les filtres d'intentions.
intent.setType("text/plain");
startActivity(intent);
EXEMPLE
URl :
String url = "http://www.google.com";
i.setData(Uri.parse(url));
startActivity(i);
EXEMPLE
Envoie d’un email :
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
String[] recipients = new String[]{"my@email.com", "",};
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Test");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Message");
emailIntent.setType("text/plain");
startActivity(Intent.createChooser(emailIntent, "Send email..."));
NIR UN RÉSULTAT D'UNE AC
Le lancement d'une autre activité, qu'il s'agisse d'une activité dans votre
application ou dans une autre, ne doit pas nécessairement être une opération à
sens unique.
Vous pouvez également lancer une activité et recevoir un résultat. Par exemple,
votre application peut lancer une application d'appareil photo et recevoir la
photo prise comme résultat. Vous pouvez également démarrer l'application
Contacts pour que l'utilisateur sélectionne un contact, puis reçoive ses
coordonnées en conséquence.
OBTENIR UN RÉSULTAT D'UNE ACTIVITÉ
Intent pickContactIntent =
new Intent (Intent.ACTION_PICK , Uri.parse ( "content: // contacts"));
Dans le Manifest, un filtre doit être inséré dans un tag receiver qui pointe