Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
130 L’art du développement Android
Variantes de menus
Android distingue les "menus d’options" des "menus contextuels". Les premiers se
déclenchent en appuyant sur le bouton "Menu" du terminal, tandis que les seconds
s’ouvrent lorsqu’on maintient une pression du doigt sur le widget qui dispose de ce menu.
En outre, les menus d’option fonctionnent selon deux modes : icône et étendu. Lorsque
l’utilisateur appuie sur le bouton Menu, le menu est en mode icône et n’affiche que les six
premiers choix sous la forme de gros boutons faciles à sélectionner, disposés en ligne en
bas de l’écran. Si ce menu compte plus de six choix, le sixième bouton affiche "Plus" –
cliquer sur cette option fait passer le menu en mode étendu, qui affiche tous les choix
restants. L’utilisateur peut bien sûr faire défiler le menu afin d’effectuer n’importe quel
choix.
Les menus d’options
Au lieu de construire le menu d’options de votre activité dans onCreate(), comme le
reste de votre interface graphique, vous devez implémenter la méthode onCreateOptionsMenu() en lui passant une instance de la classe Menu.
La première opération à réaliser consiste à établir un chaînage vers la méthode de la superclasse (via super.onCreateOptionsMenu(menu)), afin qu’Android puisse lui ajouter les
choix nécessaires. Puis vous pouvez ajouter les vôtres, comme on l’expliquera bientôt.
Si vous devez modifier le menu au cours de l’activité (pour, par exemple, désactiver un
choix devenu inadéquat), il suffit de manipuler l’instance de Menu que vous avez transmise
à onCreateOptionsMenu() ou d’implémenter la méthode onPrepareOptionsMenu(), qui
est appelée avant chaque affichage du menu.
Pour ajouter des choix au menu, utilisez la méthode add(). Celle-ci est surchargée pour
pouvoir recevoir des combinaisons des paramètres suivants :
● Un identifiant de groupe (un entier), qui doit être NONE lorsque vous ne regroupez pas
un ensemble d’options de menu, utilisable avec setGroupCheckable().
● Un identifiant de choix (également un entier) servant à identifier la sélection dans la
méthode de rappel onOptionsItemSelected() lorsqu’une option du menu a été
choisie.
● Un identifiant d’ordre (encore un entier), indiquant l’emplacement du choix dans le
menu lorsque ce dernier contient des options ajoutées par Android – pour l’instant,
contentez-vous d’utiliser NONE.
● Le texte du choix, sous la forme d’une String ou d’un identifiant de ressource.
Toutes les méthodes add() renvoient une instance de MenuItem qui vous permet ensuite
de modifier tous les réglages du choix concerné (son texte, par exemple). Vous pouvez
Livre Android.book Page 130 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
130 L’art du développement Android
Variantes de menus
Android distingue les "menus d’options" des "menus contextuels". Les premiers se
déclenchent en appuyant sur le bouton "Menu" du terminal, tandis que les seconds
s’ouvrent lorsqu’on maintient une pression du doigt sur le widget qui dispose de ce menu.
En outre, les menus d’option fonctionnent selon deux modes : icône et étendu. Lorsque
l’utilisateur appuie sur le bouton Menu, le menu est en mode icône et n’affiche que les six
premiers choix sous la forme de gros boutons faciles à sélectionner, disposés en ligne en
bas de l’écran. Si ce menu compte plus de six choix, le sixième bouton affiche "Plus" –
cliquer sur cette option fait passer le menu en mode étendu, qui affiche tous les choix
restants. L’utilisateur peut bien sûr faire défiler le menu afin d’effectuer n’importe quel
choix.
Les menus d’options
Au lieu de construire le menu d’options de votre activité dans onCreate(), comme le
reste de votre interface graphique, vous devez implémenter la méthode onCreateOptionsMenu() en lui passant une instance de la classe Menu.
La première opération à réaliser consiste à établir un chaînage vers la méthode de la superclasse (via super.onCreateOptionsMenu(menu)), afin qu’Android puisse lui ajouter les
choix nécessaires. Puis vous pouvez ajouter les vôtres, comme on l’expliquera bientôt.
Si vous devez modifier le menu au cours de l’activité (pour, par exemple, désactiver un
choix devenu inadéquat), il suffit de manipuler l’instance de Menu que vous avez transmise
à onCreateOptionsMenu() ou d’implémenter la méthode onPrepareOptionsMenu(), qui
est appelée avant chaque affichage du menu.
Pour ajouter des choix au menu, utilisez la méthode add(). Celle-ci est surchargée pour
pouvoir recevoir des combinaisons des paramètres suivants :
● Un identifiant de groupe (un entier), qui doit être NONE lorsque vous ne regroupez pas
un ensemble d’options de menu, utilisable avec setGroupCheckable().
● Un identifiant de choix (également un entier) servant à identifier la sélection dans la
méthode de rappel onOptionsItemSelected() lorsqu’une option du menu a été
choisie.
● Un identifiant d’ordre (encore un entier), indiquant l’emplacement du choix dans le
menu lorsque ce dernier contient des options ajoutées par Android – pour l’instant,
contentez-vous d’utiliser NONE.
● Le texte du choix, sous la forme d’une String ou d’un identifiant de ressource.
Toutes les méthodes add() renvoient une instance de MenuItem qui vous permet ensuite
de modifier tous les réglages du choix concerné (son texte, par exemple). Vous pouvez
Livre Android.book Page 130 Dimanche, 8. novembre 2009 12:23 12
