Comment fonctionne exactement le MenuInflater travail?
Si je comprends bien loin, MenuInflater est un type d'objet qui peut gonfler (blow up, développez?) un Menu type d'objet.
Mais quand c'est la méthode appelée et le Menu de l'objet est automatiquement transmise?
Ce n'getMenuInflater() do (ou est-ce juste une autre façon de ... = new MenuInflater())?
Et puis, une fois les inflater objet est créé, exactement ce que fait le .gonfler?
Quel est le passé-dans le menu objet de faire avec mon main.xml menu?
(Je suis désolé si je pose trop de questions à la fois).
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(Menu);
}
Viens de lire developer.android.com/guide/topics/ui/menus.html
Bien sûr, j'ai lu qu'avant, mais il est dit ceci à propos de l'java partie: "Pour spécifier les options de menu pour une activité, remplacer onCreateOptionsMenu() (fragments de fournir leur propre onCreateOptionsMenu() rappel). Dans cette méthode, vous pouvez gonfler votre menu (définis en XML) dans le Menu la fonction de rappel. Par exemple:" et puis un exemple similaire à celui que j'ai donné ci-dessus.
Bien sûr, j'ai lu qu'avant, mais il est dit ceci à propos de l'java partie: "Pour spécifier les options de menu pour une activité, remplacer onCreateOptionsMenu() (fragments de fournir leur propre onCreateOptionsMenu() rappel). Dans cette méthode, vous pouvez gonfler votre menu (définis en XML) dans le Menu la fonction de rappel. Par exemple:" et puis un exemple similaire à celui que j'ai donné ci-dessus.
OriginalL'auteur PenguinCake | 2014-08-07
Vous devez vous connecter pour publier un commentaire.
Un
MenuInflater
est un objet qui est capable de créerMenu
de ressources xml (bien sûr uniquement les menus des ressources), qui est : la construction d'une nouvelle instance deMenu
donné un menu identificateur de ressource.La
onCreateOptionMenu(Menu)
est appelée lorsque le bouton de menu de l'appareil est pressé, ou soitActivity.openOptionsMenu()
est appelé.Le rendu du menu est géré par l'activité. Juste avant, il est montré, le
Activity
passe pour vous le menu de sorte que vous pouvez le remplir avec vos propres éléments, alors qu'il montre.Donc Android s'engage à ce que, car il n'est pas de vos affaires afin de rendre le menu, vous ne pouvez pas contrôler ce menu est réellement passé à l'intérieur de
onCreateOptionsMenu
.Comme pour le
ActionBar
, leonCreateOptionsMenu
est appelé lors du remplissageActionBar
, de sorte que les options de menu disponibles dans leActionBar
. Cette méthode n'est appelée qu'une fois après laActivity
être créé. Si vous souhaitez modifier le menu plus tard, en revanche, vous pouvez remplacerActivity.onPrepareOptionsMenu
C'est ça : sur certains appareils le bouton de menu ne peut pas être un bouton physique, de sorte que la barre d'action comprennent un débordement bouton qui affiche le menu d'options
Ok, donc, (corrigez-moi si je me trompe): j'appuie sur le dépassement de bouton (un objet de type Menu) qui appelle à la onCreateOptionsMenu et passe comme un argument. Puis un MenuInflater est créé qui gonfle le main.xml dans le menu contextuel. Et enfin quelques super de données est retourné pour le menu de travailler.
Le comportement réel est : Vous appuyez sur le bouton comme l'a dit. Ce bouton n'est pas un
Menu
, juste un bouton. LeActivity
est notifié et les appelsonCreateOptionsMenu
si elle était déjà bonne, alorsonPrepareOptionsMenu
. Les deux fonctions recevoir leMenuInflater
de laActivity
(voirActivity.getMenuInflater
) et unMenu
objet qui est passé par l'activité (c'est la création qui n'est pas couverte par l'API).Ensuite, vous remplissez le
Menu
gonfler les ressources xml, si nécessaire, et le retour de la méthode. LeActivity
prend alors laMenu
il est passé pour vous et que vous avez rempli et l'affiche (le comment n'est pas couverte par l'API).OriginalL'auteur Antoine Marques
Ma compréhension à propos de "gonfler" est la "lecture" d'un fichier de ressource (un fichier XML qui décrit une mise en page ou élément graphique) et de "créer" des objets réels qui correspondent à elle; cela fera l'objet de menu visible dans une application Android.
MenuInflater classe représente un Android cadre de la classe spécialisée dans l'analyse et la construction de menus dans le menu fichiers de ressources.
Jeter un oeil à: Construire les Menus Android avec Java et XML: Introduction
De l'article:
OriginalL'auteur Adrian