J'ai une classe de fragment qui étend Fragment
et appelle setHasOptionsMenu
pour participer au menu. Cette classe implémente également onCreateOptionsMenu
, onPrepareOptionsMenu
y onOptionsItemSelected
.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
....
}
Je charge dynamiquement ce fragment à l'aide d'un fichier FragmentTransaction
dans mon activité (qui étend FragmentActivity
).
Cependant, aucun des rappels du menu ( onCreateOptionsMenu
, onPrepareOptionsMenu
y onOptionsItemSelected
) sont appelés (j'ai débogué avec des points d'arrêt dans ces méthodes) et le menu n'est pas affiché.
Est-ce que j'ai manqué quelque chose ? Dois-je ajouter quelque chose dans mon activité ?
J'utilise la bibliothèque de compatibilité Android, je compile avec le SDK L11 et je teste dans une Xoom.
EDITAR : J'ai trouvé le problème. Mon AndroidManifest cible L11, ce qui semble cacher le bouton de menu et empêcher les callbacks d'être appelés. Cependant, si je retire ce bouton du manifeste, je perds d'autres fonctionnalités dont j'ai besoin (par exemple l'état activé dans les listes). Est-ce que quelqu'un sait comment résoudre ce problème (activer le bouton de menu) sans supprimer l'option de l'AndroidManifest ? targetSdkVersion=11
du Manifeste ?