SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
TP : Les Menus Android
Créer un projet en choisissant une “empty activity” comme point de
départ. Vous allez vous retrouver avec le dossier menu manquant.
Pour créer votre ActionBar il est nécessaire de créer se menu. Pour
l’ajouter, il suffit de faire un clic droit sur le dossier “res” puis aller
sur l’onglet “New” et enfin cliquez sur “Android Ressource
Directory”.
Une nouvelle fenêtre va s’ouvrir qu’il faut ensuite configurer. 
Sélectionner  “menu” pour le “Ressource type”,  puis appuyer sur
“OK”.
Voilà,  le menu a été crée, il vous reste plus qu’à ajouter votre
fichier xml correspondant à votre menu dans le dossier “menu”
qui vient d’être créé (“Android Ressource File” ).
La création du menu
La création d’un menu reste simple, une balise <Menu> comme
point départ. Ensuite vous avez le choix entre la balise “item” et la
balise “group”
mon_menu
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/
res/android" xmlns:app="http://schemas.android.com/
apk/res-auto">
<item
android:id="@+id/item_favoris"
android:title="Favoris"
android:icon="@android:drawable/
btn_star_big_off"
app:showAsAction="always"/>
<item
android:id="@+id/Effacer"
android:title="Effacer"
android:icon="@android:drawable/
ic_menu_delete"
app:showAsAction="always"/>
<item
android:id="@+id/configuration"
android:title="paramètres"
app:showAsAction="never"/>
</menu>
La balise <item> correspond à votre élément dans le menu ou à
votre bouton sur votre ActionBar, si vous préférez. Il doit
obligatoirement posséder un identifiant (android:id) si vous
souhaitez interagir avec lui. Vous pouvez lui ajouter un titre, une
icône et différentes autres options.  Le paramètre par exemple
“app:showAsAction” définit la position de votre élément selon
différents critères :
La balise <group> permet de regrouper un ensemble “item”
ensemble. Les paramètres du groupe agissent sur l’ensemble des
éléments. La balise <group> n’est pas souvent utilisée dans une
ActionBar.
Valeur Description
ifRoom Place les éléments dans la barre d’action
s’il y a de la place.
withText Ajoute le texte du titre (défini par
android:title) avec votre élément . Vous
pouvez l’ajouter avec une autre valeur en
les séparant avec un tuyau |.
Exemple : app:showAsAction = ” ifRoom|
withText”
never Place l’élément dans le menu de
débordement de la barre d’action. C’est la
valeur par défaut, si le paramètre «
app:showAsAction » n’est pas défini.
always Place l’élément dans la barre d’action. Si
le nombre d’éléments définit avec cette
valeur, il se peut que les éléments se
chevaucher avec d’autres interfaces
utilisateur dans la barre des applications.
La mise en place dans l’activité
Pour associer notre ActionBar à notre activité, il faut redéfinir
la méthode onCreateOptionsMenu. Une méthode à redéfinir est
facilement repérable par le mot-clé “override”.
onCreateOptionsMenu
override fun onCreateOptionsMenu(menu: Menu?):
Boolean {
super.onCreateOptionsMenu(menu)
menuInflater.inflate(R.menu.mon_menu,menu)
return true
}
L’instruction “super.onCreateOptionsMenu(menu)” fait appel à la
méthode portant le même nom dans la classe mère, pour initialiser
notre méthode.  Dans cette classe mère, les méthodes initialisent et
gèrent les différents accès au système. Notre “MainActivity”  est
une couche supplémentaire à cette classe mère.
Redéfinir une méthode permet donc de faire abstraction de la
couche dite “parente”, d’éviter de réécrire du code qui a déjà été
écrit et de nous  permettre de nous concentrer sur l’essentielle.
L’instruction “menuInflater.inflate(R.menu.mon_menu,menu)” 
va venir lier notre ActionBar (fichier XML) à notre MainActivity
(code Kotlin).
Le menu est associé mais il n’est présent que visuellement. Pour
pouvoir interagir avec lui, il faut redéfinir la méthode
“onOptionsItemSelected”.
onOptionsItemSelected
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
super.onOptionsItemSelected(item)
when (item?.itemId)
{
R.id.item_favoris ->
{
if (isFavori == false)
{
item.setIcon(R.drawable.btn_rating_star_off_pressed)
Toast.makeText(this,"Favoris",Toast.LENGTH_LONG).show()
isFavori = true
}
else
{
item.setIcon(R.drawable.btn_rating_star_off_normal)
isFavori = false
}
}
R.id.configuration ->
{ Toast.makeText(this,"Paramètres",Toast.LENGTH_LONG).show() }
R.id.Effacer ->
{
mon_editText.text.clear()
Toast.makeText(this,"le contenu a été
effacé",Toast.LENGTH_LONG).show()
}
else -> { Toast.makeText(this,"action
inconnu",Toast.LENGTH_LONG).show() }
}
return true
}
À chaque clic sur un item du menu, son identifiant est envoyé en
paramètre de cette méthode. Ce qui permet associée une suite
d’instructions à un identifiant et donc à un élément de notre
ActionBar. Dans la boucle “when”, on vient créer les différents cas
en fonction des identifiants. Le cas “else”, correspond le cas par
défaut si l’identifiant récupéré ne correspond à aucun des cas qu’on
a inscrit. Chaque cas est défini par un identifiant suivi d’une flèche
et des instructions encadrées par des accolades.
Pour aller plus loin
Il existe plusieurs paramètres pour définir une balise <item> :
Si vous êtes curieux je vous invite à aller voir la documentation en
anglais ici  !
Exercice 2
Réécrire en langage kotlin les programmes Menus que vous
trouverez dan le document : cours-11
Menus.pdf

Contenu connexe

Similaire à Menus.pdf

programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 
Chapitre4 cours de java
Chapitre4 cours de javaChapitre4 cours de java
Chapitre4 cours de javainfo1994
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsLilia Sfaxi
 
La puissance des pseudo-éléments
La puissance des pseudo-élémentsLa puissance des pseudo-éléments
La puissance des pseudo-élémentsGeoffrey Croftє
 
chapitre-7-listviews.pdf
chapitre-7-listviews.pdfchapitre-7-listviews.pdf
chapitre-7-listviews.pdfolfaharrabi2
 
Les vues (views) sous android
Les vues (views) sous androidLes vues (views) sous android
Les vues (views) sous androidHoussem Lahiani
 

Similaire à Menus.pdf (10)

programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Marzouk collection-map
Marzouk collection-mapMarzouk collection-map
Marzouk collection-map
 
TP_1.pdf
TP_1.pdfTP_1.pdf
TP_1.pdf
 
Les Widgets
Les WidgetsLes Widgets
Les Widgets
 
5.ateliers avancés
5.ateliers avancés5.ateliers avancés
5.ateliers avancés
 
Chapitre4 cours de java
Chapitre4 cours de javaChapitre4 cours de java
Chapitre4 cours de java
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
 
La puissance des pseudo-éléments
La puissance des pseudo-élémentsLa puissance des pseudo-éléments
La puissance des pseudo-éléments
 
chapitre-7-listviews.pdf
chapitre-7-listviews.pdfchapitre-7-listviews.pdf
chapitre-7-listviews.pdf
 
Les vues (views) sous android
Les vues (views) sous androidLes vues (views) sous android
Les vues (views) sous android
 

Plus de FethiBenYahia1 (8)

TP_3.pdf
TP_3.pdfTP_3.pdf
TP_3.pdf
 
TP_2.pdf
TP_2.pdfTP_2.pdf
TP_2.pdf
 
3-android.pdf
3-android.pdf3-android.pdf
3-android.pdf
 
4-android.pdf
4-android.pdf4-android.pdf
4-android.pdf
 
2-android.pdf
2-android.pdf2-android.pdf
2-android.pdf
 
2-historique d'android.pdf
2-historique d'android.pdf2-historique d'android.pdf
2-historique d'android.pdf
 
1-android.pdf
1-android.pdf1-android.pdf
1-android.pdf
 
4-android.pdf
4-android.pdf4-android.pdf
4-android.pdf
 

Dernier

Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Coursebenezerngoran
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfssuserc72852
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsJaouadMhirach
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 

Dernier (20)

Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 

Menus.pdf

  • 1. TP : Les Menus Android Créer un projet en choisissant une “empty activity” comme point de départ. Vous allez vous retrouver avec le dossier menu manquant. Pour créer votre ActionBar il est nécessaire de créer se menu. Pour l’ajouter, il suffit de faire un clic droit sur le dossier “res” puis aller sur l’onglet “New” et enfin cliquez sur “Android Ressource Directory”.
  • 2. Une nouvelle fenêtre va s’ouvrir qu’il faut ensuite configurer.  Sélectionner  “menu” pour le “Ressource type”,  puis appuyer sur “OK”. Voilà,  le menu a été crée, il vous reste plus qu’à ajouter votre fichier xml correspondant à votre menu dans le dossier “menu” qui vient d’être créé (“Android Ressource File” ). La création du menu
  • 3. La création d’un menu reste simple, une balise <Menu> comme point départ. Ensuite vous avez le choix entre la balise “item” et la balise “group” mon_menu <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/ res/android" xmlns:app="http://schemas.android.com/ apk/res-auto"> <item android:id="@+id/item_favoris" android:title="Favoris" android:icon="@android:drawable/ btn_star_big_off" app:showAsAction="always"/> <item android:id="@+id/Effacer" android:title="Effacer" android:icon="@android:drawable/ ic_menu_delete" app:showAsAction="always"/> <item android:id="@+id/configuration" android:title="paramètres" app:showAsAction="never"/> </menu> La balise <item> correspond à votre élément dans le menu ou à votre bouton sur votre ActionBar, si vous préférez. Il doit obligatoirement posséder un identifiant (android:id) si vous souhaitez interagir avec lui. Vous pouvez lui ajouter un titre, une icône et différentes autres options.  Le paramètre par exemple
  • 4. “app:showAsAction” définit la position de votre élément selon différents critères : La balise <group> permet de regrouper un ensemble “item” ensemble. Les paramètres du groupe agissent sur l’ensemble des éléments. La balise <group> n’est pas souvent utilisée dans une ActionBar. Valeur Description ifRoom Place les éléments dans la barre d’action s’il y a de la place. withText Ajoute le texte du titre (défini par android:title) avec votre élément . Vous pouvez l’ajouter avec une autre valeur en les séparant avec un tuyau |. Exemple : app:showAsAction = ” ifRoom| withText” never Place l’élément dans le menu de débordement de la barre d’action. C’est la valeur par défaut, si le paramètre « app:showAsAction » n’est pas défini. always Place l’élément dans la barre d’action. Si le nombre d’éléments définit avec cette valeur, il se peut que les éléments se chevaucher avec d’autres interfaces utilisateur dans la barre des applications.
  • 5. La mise en place dans l’activité Pour associer notre ActionBar à notre activité, il faut redéfinir la méthode onCreateOptionsMenu. Une méthode à redéfinir est facilement repérable par le mot-clé “override”. onCreateOptionsMenu override fun onCreateOptionsMenu(menu: Menu?): Boolean { super.onCreateOptionsMenu(menu) menuInflater.inflate(R.menu.mon_menu,menu) return true } L’instruction “super.onCreateOptionsMenu(menu)” fait appel à la méthode portant le même nom dans la classe mère, pour initialiser notre méthode.  Dans cette classe mère, les méthodes initialisent et gèrent les différents accès au système. Notre “MainActivity”  est une couche supplémentaire à cette classe mère.
  • 6. Redéfinir une méthode permet donc de faire abstraction de la couche dite “parente”, d’éviter de réécrire du code qui a déjà été écrit et de nous  permettre de nous concentrer sur l’essentielle. L’instruction “menuInflater.inflate(R.menu.mon_menu,menu)”  va venir lier notre ActionBar (fichier XML) à notre MainActivity (code Kotlin). Le menu est associé mais il n’est présent que visuellement. Pour pouvoir interagir avec lui, il faut redéfinir la méthode “onOptionsItemSelected”. onOptionsItemSelected override fun onOptionsItemSelected(item: MenuItem?): Boolean { super.onOptionsItemSelected(item) when (item?.itemId) { R.id.item_favoris -> { if (isFavori == false) { item.setIcon(R.drawable.btn_rating_star_off_pressed) Toast.makeText(this,"Favoris",Toast.LENGTH_LONG).show() isFavori = true } else { item.setIcon(R.drawable.btn_rating_star_off_normal) isFavori = false } } R.id.configuration -> { Toast.makeText(this,"Paramètres",Toast.LENGTH_LONG).show() } R.id.Effacer -> { mon_editText.text.clear() Toast.makeText(this,"le contenu a été effacé",Toast.LENGTH_LONG).show() } else -> { Toast.makeText(this,"action inconnu",Toast.LENGTH_LONG).show() } } return true } À chaque clic sur un item du menu, son identifiant est envoyé en paramètre de cette méthode. Ce qui permet associée une suite
  • 7. d’instructions à un identifiant et donc à un élément de notre ActionBar. Dans la boucle “when”, on vient créer les différents cas en fonction des identifiants. Le cas “else”, correspond le cas par défaut si l’identifiant récupéré ne correspond à aucun des cas qu’on a inscrit. Chaque cas est défini par un identifiant suivi d’une flèche et des instructions encadrées par des accolades. Pour aller plus loin Il existe plusieurs paramètres pour définir une balise <item> : Si vous êtes curieux je vous invite à aller voir la documentation en anglais ici  ! Exercice 2 Réécrire en langage kotlin les programmes Menus que vous trouverez dan le document : cours-11