Pourquoi les menus ne s'affichent-ils pas automatiquement dans Android, comme c'est le cas pour une présentation d'activité?pourquoi les menus ne sont-ils pas gonflés pour vous?
2
A
Répondre
4
Ils sont, tout simplement passer outre comme ceci:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.YOUR_MENU_LAYOUT, menu);
return true;
}
EDIT, Heres un échantillon xml, ils vont dans /res/menu
<menu>
<item android:id="@+id/menu_sample"
android:title="Sample text"
android:icon="@drawable/ic_menu_sample"
/>
</menu>
3
Vous faites gonfler explicitement votre mise en page de l'activité avec setContentView(R.layout.whatever)
. Il n'a pas gonflé dans le nom, mais cela (parmi quelques autres choses) est ce qu'il fait.
Voici ce que je suis confus à propos de: Le code substitué que vous proposez de fournir, contient des instructions qui gonflent explicitement le fichier XML. Toutefois, mes dispositions d'activité n'ont pas besoin d'une telle action. Donc, ma question n'est pas "comment" gonfler un menu, mais "POURQUOI" est-ce nécessaire? Pourquoi les menus ne sont-ils pas gonflés automatiquement, comme les mises en page d'activité? Merci –
Mais les mises en page sont gonflées de la même manière, juste avec un appel API 'setContentView (layout)'. La partie «pourquoi» de votre question pourrait être aussi simple que «Pour faciliter l'ajout de sous-menus» Prenons cet exemple. J'ai une classe abstraite qui prolonge l'activité. Il gonfle un ensemble d'actions communes disponibles pour les options de menu. Dans les sous-classes que j'utilise pour les activités, j'ajoute dynamiquement des options spécifiques en utilisant 'addSubMenu (int groupId, int itemId, int ordre, int titleRes)' De cette façon, je n'ai pas besoin de copier et coller xml partout. – smith324