Menu (OptionMenu)

Android has 2 types of menu.

One of Option menu. Option Menu is menu to show up when pushing menu button.

It displays 6 panels menu bottom of display.
Maximum number is 6, if you want to add more than 6, need to use other category or submenu.

Steps

  1. Implement public boolean onCreateOptionsMenu(Menu menu) to add Menu UI
  2. Implement public boolean onOptionsItemSelected(MenuItem item) to handle clicking

Method

Method Description
onCreateOptionsMenu Only when calling option menu(once)
onPrepareOptionsMenu Everytime to display option menu
onOptionsItemSelected When selecting menu item

Sample

menu

public class MenuActivity extends Activity 
{
    private static final int MENU_ID_MENU1 = (Menu.FIRST + 1);
    private static final int MENU_ID_MENU2 = (Menu.FIRST + 2);
     
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
    {
        // We can keep Menu menu out of this method
        MenuItem item1 = menu.add(Menu.NONE,MENU_ID_MENU1,Menu.NONE, "Android");
        MenuItem item2 = menu.add(Menu.NONE,MENU_ID_MENU2,Menu.NONE, "iOS");
        return super.onCreateOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) 
    {
        boolean ret = true;
         
        switch ( item.getItemId() )
        {
        case MENU_ID_MENU1:
            ret = true;
            break;
        case MENU_ID_MENU2:
            ret = true;
            break;
        default:
            ret = super.onOptionsItemSelected(item);
        }
        return ret;
    }
}

Sub Menu

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    // We can keep Menu menu out of this method
    MenuItem item1 = menu.add(Menu.NONE,MENU_ID_MENU1,Menu.NONE, "Android");
    MenuItem item2 = menu.add(Menu.NONE,MENU_ID_MENU2,Menu.NONE, "iOS");
     
    // Sub Menu
    SubMenu item3 = menu.addSubMenu(Menu.NONE, MENU_ID_MENU3, Menu.NONE,"Others");
    item3.setIcon(android.R.drawable.ic_menu_more);
    item3.add(Menu.NONE, SUBMENU_MENU1, Menu.NONE, "BlackBerry");
    item3.add(Menu.NONE, SUBMENU_MENU2, Menu.NONE, "Windows Phone");
     
    return super.onCreateOptionsMenu(menu);
}

Sub menu shows up when selecting “Others”

submenu