Search code examples
androideclipseselectmenumenubar

menu bar icons not shown Eclipse Android


The menu bar is shown but my icons does not show at the top of my layout.

Menu xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<!-- Search, should appear as action button -->
<item android:id="@+id/action_write"
      android:icon="@drawable/ic_action_refresh"
      android:title="@string/action_write"
      android:showAsAction="ifRoom" />

<!-- Settings, should always be in the overflow -->
<item android:id="@+id/action_read"
      android:title="@string/action_read"
      android:showAsAction="never" />
</menu>

Display Menu:

    public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.my_menu, menu);

    return super.onCreateOptionsMenu(menu);
}   

I am using 4.4.2 on Galaxy Note 3. I tried so many things but nothing work (6 hrs). I am using appcompat_v7.

Extend:

public class myActivity extends ActionBarActivity 

Any help is appreciated.


Solution

  • You must use your own namespace as a prefix for all attributes defined by the support library.

    <menu xmlns:android="http://schemas.android.com/apk/res/android" 
          xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_write"
          android:icon="@drawable/ic_action_refresh"
          android:title="@string/action_write"
          yourapp:showAsAction="ifRoom" />
    
    <!-- Settings, should always be in the overflow -->
    <item android:id="@+id/action_read"
          android:title="@string/action_read"
          yourapp:showAsAction="never" />
    </menu>
    

    Example from Android developer website:

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
        <item android:id="@+id/action_search"
              android:icon="@drawable/ic_action_search"
              android:title="@string/action_search"
              yourapp:showAsAction="ifRoom"  />
        ...
    </menu>
    

    Using XML attributes from the support library Notice that the showAsAction attribute above uses a custom namespace defined in the tag. This is necessary when using any XML attributes defined by the support library, because these attributes do not exist in the Android framework on older devices. So you must use your own namespace as a prefix for all attributes defined by the support library.

    http://developer.android.com/guide/topics/ui/actionbar.html