j'ai un code très simple, mais un problème que je ne peux pas résoudre même après une longue recherche sur Google. Je souhaite avoir des actions dans mon ActionBar, mais chaque fois que je lance l'application, tout ce que je vois est un ActionBar avec le logo de l'application et le titre, mais pas d'action .
Ce serait formidable, si vous pouviez m'aider, je manque probablement de la chose la plus évidente;)
Thats la méthode dans mon ActionBarActivity:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
Et voici le fichier .xml pertinent pour le ActionBar (nommé main_activity_actions.xml):
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item Android:id="@+id/action_search"
Android:icon="@drawable/ic_action_search"
Android:title="@string/action_search"
Android:showAsAction="always" />
<item Android:id="@+id/action_compose"
Android:icon="@drawable/ic_action_compose"
Android:title="@string/action_compose"
Android:showAsAction="always"/>
</menu>
En effet, si vous utilisez la bibliothèque de support ActionCar AppCompat et ActionBarActivity, vous devez créer vos menus de manière différente de la méthode standard de création de menus XML dans ActioBarSherlock ou de la barre d'action par défaut.
Alors essayez ce code:
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto">
<item Android:id="@+id/action_search"
Android:icon="@drawable/ic_action_search"
Android:title="@string/action_search"
app:showAsAction="always" />
<item Android:id="@+id/action_compose"
Android:icon="@drawable/ic_action_compose"
Android:title="@string/action_compose"
app:showAsAction="always"/>
</menu>
et signaler si cela fonctionne.
Remarque: vérifiez le préfixe supplémentaire xmlns:app
qui devrait être utilisé à la place!
Assurez-vous que vous n'utilisez pas un style rendant vos actions invisibles.
Par exemple, si vous utilisez "Android: Theme.Holo.Light.DarkActionBar", vous obtenez une barre d'action noire pour que vous ne puissiez pas voir vos éléments noirs.
Basculez sur "Android: Theme.Holo.Light" et ils apparaîtront.
Regardez dans le fichier (par exemple) res/values-v14/styles.xml
Voilà, vous devez ajouter le menu dans votre XML comme ceci:
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item
Android:id="@+id/menu_settings"
Android:orderInCategory="0"
Android:showAsAction="always"
Android:icon="@drawable/menu">
<menu>
<item Android:id="@+id/action_search"
Android:icon="@drawable/ic_action_search"
Android:title="@string/action_search"
Android:showAsAction="always" />
<item Android:id="@+id/action_compose"
Android:icon="@drawable/ic_action_compose"
Android:title="@string/action_compose"
Android:showAsAction="always"/>
</menu>
</item>
</menu>
Essaye ça:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return true;
}