Recientemente comencé un nuevo proyecto y creé una barra de acción personalizada, pero por alguna razón no le está agregando íconos, ¡aparecerán en la parte de desbordamiento pero no en la barra real! :(, realmente lo siento si esto parece simple, acabo de comenzar a aprender Android, publicaré mi código a continuación.

Menu_main.xml

<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:id="@+id/maps"
    android:icon="@drawable/ic_action_map"
    android:title= "@string/maps"
    app:showAsAction="ifRoom"
    android:orderInCategory="100"/>

<item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:orderInCategory="100"
    app:showAsAction="never" />

Parte de mi método principal

  @Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_main, menu);
    return super.onCreateOptionsMenu(menu);
}

Gracias de antemano

Editar: también estoy usando Android Studio

Edit2: Aquí está mi archivo de manifiesto.

<?xml version="1.0" encoding="utf-8"?>
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_maps"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
   >
    <activity
        android:name=".MainActivity"
        android:label="SIX REP MAX" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Chest"
        android:parentActivityName=".MainActivity">
    </activity>
    <activity android:name=".Back"
        android:parentActivityName=".MainActivity">
    </activity>
    <activity android:name=".Biceps"
        android:parentActivityName=".MainActivity">
    </activity>
    <activity android:name=".Triceps"
        android:parentActivityName=".MainActivity">
    </activity>
    <activity android:name=".Shoulders"
        android:parentActivityName=".MainActivity">
    </activity>
    <activity android:name=".Legs"
        android:parentActivityName=".MainActivity">
    </activity>
</application>

Edición 3: Aquí está mi barra de acciones personalizada

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">#0099FF</item>
    <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>

</style>
<style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:textColor">#ffffff</item>
    <item name="android:textSize">24sp</item>
</style>
1
aluckii 16 feb. 2015 a las 20:33

4 respuestas

La mejor respuesta

Haga esto para todos los elementos del menú:

app:showAsAction="always"

Y agregue esto a su Activity:

@Override
public boolean onPrepareOptionsMenu (Menu menu) {
    // This will hide the 3-dots menu
    return false;
}

Prueba esto. Esto funcionará

2
Y.S 16 feb. 2015 a las 17:40

Su código parece estar bien, pero intente eliminarlo

xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity"

De la etiqueta <menu> y también eliminar

android:orderInCategory="100"

De <item android:id="@+id/maps"

0
Apurva 16 feb. 2015 a las 18:01

Prueba el siguiente código:

    <item android:id="@+id/maps"
    android:icon="@drawable/ic_action_map"
    android:title= "@string/maps"
    app:showAsAction="always"
    android:orderInCategory="100"/>
   <item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:orderInCategory="100"
    app:showAsAction="always" />

Probablemente su imagen no se ajuste a la barra de acciones. Así que mientras intentas

app:showAsAction="ifRoom"

Está fuera de lugar. Entonces, en lugar de usar ifRoom, pon siempre. De lo contrario, intente cambiar el tamaño de la imagen para que se ajuste a su barra de acción

0
user4556738user4556738 16 feb. 2015 a las 17:42

Este es el código que debe usar, observe con cuidado el retorno en onCreateOptionsMenu

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.some_menu_xml, menu);

   //return true is important here
    return true;
 }
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.maps:
            //Do Something
            return true;
        case android.R.id.home:
           //Do Something else
            return true;
    }
    return super.onOptionsItemSelected(item);
}
0
Adit Lal 16 feb. 2015 a las 17:40