J'essaie de mettre à jour les boutons de menu de mon application chaque fois que l'on appuie sur l'un d'entre eux ; dans l'API 11+, il faut appeler invalidateOptionsMenu()
pour ce faire ; puisque je veux que mon application soit compatible avec les API inférieures, comment puis-je appeler cette méthode uniquement lorsque j'utilise l'API 11+ ?
Réponses
Trop de publicités?Utilisez
ActivityCompat.invalidateOptionsMenu(Activity activity)
de la bibliothèque de compatibilité .
Pour les autres qui cherchent une réponse comme moi :
Si vous utilisez ActionBarSherlock et en essayant de rafraîchir les boutons de la barre d'action sur l'API <11, au lieu de
Activity.invalidateOptionsMenu()
vous pouvez utiliser
SherlockActivity.supportInvalidateOptionsMenu()
:
Je ne pense pas qu'il y ait besoin d'une bibliothèque de compatibilité et ainsi de suite, il suffit de faire un simple
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
invalidateOptionsMenu();
}
Vous n'avez pas besoin de l'appeler avant le rayon de miel, car, afaik, onPrepareOptionsMenu() est appelé lorsque le bouton de menu est pressé. Cela fonctionne pour moi.
Avez-vous essayé d'utiliser une FragmentActivity à partir de l'interface de l'utilisateur ? Paquet de soutien au lieu d'une activité normale ? Je pense que la méthode dont vous avez besoin se trouve dans FramentActivity.