La meilleure et la plus simple des réponses que j'ai trouvées jusqu'à présent est la suivante aquí .
En fait, il n'est pas nécessaire d'utiliser une mise en page personnalisée dans ce cas. Il suffit de définir l'actonViewClass :
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/spinner"
yourapp:showAsAction="ifRoom"
yourapp:actionViewClass="android.widget.Spinner" /> <== this is all that's required
</menu>
Et ensuite le gérer dans onCreateOptionsMenu, comme d'habitude :
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_layout, menu);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item); // get the spinner
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(onItemSelectedListener);
C'est de loin la solution la plus simple et la plus propre. Crédits à François Poyer, l'auteur original.
0 votes
Vérifiez le lien 4 : Ces liens sont utiles pour vous fizzylogic.azurewebsites.net/2012/03/05/ github.com/StylingAndroid/StylingActionBar github.com/StylingAndroid/BasicActionBar