icono en el menú que no se muestra en Android

Quiero agregar el controlador de menú a mi proyecto. Leí http://developer.android.com/guide/topics/ui/menus.html también, es muy simple pero el ícono no se muestra. Estoy muy confundido. Incluso agregué un elemento de menú programáticamente.

Mi código es:

@Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 0, 0, "Quit").setIcon(R.drawable.ic_launcher); getMenuInflater().inflate(R.layout.menu, menu); return true; } 

y en xml:

      

Si está ejecutando su código en Android 3.0+, los icons en el menú no se muestran por diseño. Esta es una decisión de diseño de Google.

Puedes leer más sobre esto en el blog de desarrolladores de Android.

Independientemente de las elecciones de diseño realizadas por el sistema, puede eludir esto con la solución provista en la respuesta arriba votada a esta pregunta

Codifique abajo para completar. Probado trabajando en android.support.v7.app.ActionBarActivity

 @Override public boolean onMenuOpened(int featureId, Menu menu) { if(featureId == Window.FEATURE_ACTION_BAR && menu != null){ if(menu.getClass().getSimpleName().equals("MenuBuilder")){ try{ Method m = menu.getClass().getDeclaredMethod( "setOptionalIconsVisible", Boolean.TYPE); m.setAccessible(true); m.invoke(menu, true); } catch(NoSuchMethodException e){ Log.e(TAG, "onMenuOpened", e); } catch(Exception e){ throw new RuntimeException(e); } } } return super.onMenuOpened(featureId, menu); } 

Una vieja pregunta pero espero que ayude a alguien.

usa el siguiente código:

   

nota que usé la app:showAsAction lugar de android:showAsAction

Después de Long try, encontré la solución a continuación, que podría ayudar a otros a ahorrar tiempo. Básicamente, la solución proporcionada por “lbarbosa”, me gustaría darle las gracias sinceramente.

Probé esto en base a las respuestas anteriores y funciona bien, al menos con las versiones más recientes de la biblioteca de soporte (25.1):

 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); if(menu instanceof MenuBuilder){ MenuBuilder m = (MenuBuilder) menu; m.setOptionalIconsVisible(true); } return true; } 

Puede agregar a su archivo XML el atributo android:showAsAction="always" dentro de su elemento item. A continuación, mostrará la opción de menú relevante como un icono dentro de su barra de acciones.

Tenga en cuenta que será en lugar del texto en el menú.

Para leer más, mira aquí en android: showAsAction .

Olvídate de todos, haz este paso. agregar app:showsAsAction="always" a su artículo. Si usas android:showsAsAction="always" no obtendrás la solución. Intente agregar el atributo de la aplicación a su artículo.

 @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 0, 0, "androidDemo").setIcon(R.drawable.ic_launcher); getMenuInflater().inflate(R.layout.menu, menu); return true; } 

y en xml: