Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 11
Utilisation des menus 131
également mettre en place un raccourci pour un choix – un mnémonique d’un seul caractère, permettant de sélectionner ce choix lorsque le menu est visible. Android permet
d’utiliser des raccourcis alphabétiques et numériques, mis en place respectivement par
setAlphabeticShortcut() et setNumericShortcut(). Le menu est placé en mode
raccourci alphabétique en passant le paramètre true à sa méthode setQwertyMode().
Les identifiants de choix et de groupe sont des clés servant à déverrouiller certaines fonctionnalités supplémentaires des menus :
● Un appel à MenuItem#setCheckable() avec un identifiant de choix ajoute une case à
cocher à côté du titre de ce choix. La valeur de cette case bascule lorsque l’utilisateur
sélectionne ce choix.
● Un appel à Menu#setGroupCheckable() avec un identifiant de groupe permet de
rendre un ensemble de choix mutuellement exclusifs en leur associant des boutons
radio, afin de ne pouvoir cocher qu’une seule option du groupe à un instant donné.
Vous pouvez également appeler addIntentOptions() pour remplir le menu avec des
choix correspondant aux activités d’un Intent (voir Chapitre 25).
Enfin, il est possible de créer des sous-menus à la volée, en appelant addSubMenu() avec
les mêmes paramètres que ceux d’addMenu(). Android appellera alors onCreatePanelMenu() en lui passant l’identifiant du choix du sous-menu, ainsi qu’une autre instance de
Menu représentant le sous-menu lui-même. Comme avec onCreateOptionsMenu(), vous
devez établir un chaînage avec la méthode de la superclasse, puis ajouter les choix au
sous-menu. La seule restriction est que vous ne pouvez pas imbriquer sans fin les sousmenus : un menu peut avoir un sous-menu, mais ce dernier ne peut pas contenir lui-même
de sous-sous-menu.
Votre activité sera prévenue d’un choix de l’utilisateur par la méthode de rappel onOptionsItemSelected(). Vous recevrez alors l’objet MenuItem correspondant à ce choix.
Un motif de conception classique consiste à utiliser une instruction switch() avec l’identifiant du menu (item.getItemId()), afin d’exécuter l’action appropriée. Notez
qu’onOptionsItemSelected() est utilisée indépendamment du fait que l’option choisie
soit un choix du menu de base ou d’un sous-menu.
Menus contextuels
Le fonctionnement des menus contextuels est quasiment identique à celui des menus
d’options. Les deux différences principales concernent leur remplissage et la façon dont
vous serez informé des choix effectués par l’utilisateur.
Vous devez d’abord indiquer le ou les widgets de votre activité qui disposeront de menus
contextuels. Pour cela, il suffit d’appeler la méthode registerForContextMenu() à partir
de l’activité, en lui passant en paramètre un objet View – le widget qui a besoin d’un menu
contextuel.
Livre Android.book Page 131 Dimanche, 8. novembre 2009 12:23 12
Précédent

- 146/391

Suivant