Catégories

Je les lis (et ils le valent bien!)

Dév Android SRDice : Modifier le menu au lancement d’une activity

Logo AndroidQuand je suis dans une Activity donnée, je n’ai pas besoin d’avoir dans le menu le bouton pour y retourner. Il faut donc modifier le menu lors du lancement d’une activity pour éviter ça.

Pour cela, en développement Android, on utilise la méthode onCreateOptionsMenu.

Cette méthode est appelée soit au moment où on fait la première demande pour afficher le menu (action du bouton « menu » sur les appareils android en ayant encore) soit au lancement de l’activity pour afficher la barre d’actions (action bar, depuis android 3.0 le bouton menu est deprecated ).

Si on veut faire une action à chaque demande, dans la même logique que onCreateDialog et onPrepareDialog, il existe onPrepareOptionsMenu.

On peut ici ajouter, supprimer, modifier des éléments du menu.

Dans mon cas j’ai décidé pour chaque Activity d’ajouter un élément dans le menu qui permet de basculer vers l’autre.

De plus, lorsqu’on ajoute un élément dans le menu, il est possible de lui affecter directement une intention : le lancement d’une activity :

/**
 * Mise à jour du menu
 */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
	MenuItem menuItem = menu.add(0, 1, 0, R.string.menu_extended);
	menuItem.setIcon(android.R.drawable.ic_menu_zoom);
	menuItem.setIntent(new Intent(this, SRDExtendedActivity.class));
	return super.onCreateOptionsMenu(menu);
}

On s’épargne ainsi le lancement de l’activity depuis le onMenuItemSelected que j’avais étudié au début de mon travail sur l’ajout des Tests Étendus dans SRDice.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  

  

  

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.