Search code examples
androidandroid-actionbarandroid-support-library

Android Action Bar won't show items


I cannot get icons to show in the action bar.

I am using the most recent SDK with eclipse.

I am trying to do this tutorial http://developer.android.com/training/basics/actionbar/adding-buttons.html

My MainActivity.java is

package com.example.myfirstapp;

import android.os.Bundle;
import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuInflater;

public class MainActivity extends ActionBarActivity   {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

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

My main.xml under menu is

<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_settings"
          android:title="@string/action_settings"
          android:showAsAction="always" >
    </item>

</menu>

But I dont see the menu items. It looks like this menu missing items Any help on how to get these menu items shows would be useful.

Thank you.


Solution

  • Quoting from the docs:

    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.

    So do the following modifications:

    <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="always" />
        <item android:id="@+id/action_settings"
              android:title="@string/action_settings"
              yourapp:showAsAction="always" >
        </item>
    </menu>