Je suis un livre sur Android Development pour commencer à écrire ma première vraie application. Je suis arrivé au point de créer un menu d'options pour l'une de mes activités. Le menu apparaît, mais l'icône correspondante de l'élément de menu refuse de s'afficher. Voici le code du menu:
ReminderListActivity
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater mi = getMenuInflater();
mi.inflate(R.menu.list_menu, menu);
return true;
}
res/menu/list_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item Android:id="@+id/menu_insert"
Android:icon="@drawable/menu_add"
Android:title="@string/menu_insert" />
</menu>
J'ai copié l'icône ic_menu_add.png (32x32px) d'un de mes sous-dossiers du SDK Android dans mon dossier res/drawable-mdpi et renommé le fichier en menu_add.png. J'ai actualisé le dossier dans Eclipse pour que l'icône apparaisse et, comme vous pouvez le constater, je l'ai défini comme icône pour l'élément de menu dans mon fichier de présentation. J'ai essayé d'exécuter mon projet dans l'émulateur à quelques reprises, mais l'icône ne s'affiche jamais. Pour mémoire, j'utilise Android 4.0.3 ..
Des idées?
Sur Android 3.0+, l’approche préférée pour le menu des options (un menu Spillover dans la barre d’action) n’affichera pas les icônes. Si vous avez Android:targetSdkVersion="11"
ou supérieur, les icônes n'apparaîtront jamais dans les menus sous Android 3.0+. Les icônes apparaîtront si vous proposez qu'un élément du menu d'options devienne un bouton de la barre d'outils, et les icônes apparaîtront sur les appareils Android 1.x/2.x.
Cela fonctionne parfaitement pour moi dans API 23
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
tools:context=".MainActivity">
<item
Android:icon="@drawable/ic_menu"
Android:orderInCategory="100"
Android:title="Option Menu"
app:showAsAction="always">
<menu>
<item
Android:id="@+id/action_myorder"
Android:icon="@drawable/ic_order"
Android:title="My Order" />
<item
Android:id="@+id/action_myaccount"
Android:icon="@drawable/ic_account"
Android:title="My Account" />
<item
Android:id="@+id/action_share"
Android:icon="@drawable/ic_share"
Android:title="Share" />
<item
Android:id="@+id/action_term_condition"
Android:icon="@drawable/ic_terms"
Android:title="Term and Conditions" />
<item
Android:id="@+id/action_logout"
Android:icon="@drawable/ic_logout"
Android:title="Logout" />
</menu>
</item>
Une bonne idée est que vous avez créé une mise en page avec RelativeLayout
et que, lorsque l'utilisateur a sélectionné votre menu, votre mise en page s'affiche.