Submenu is a another way to group your menu items.
I am going to show how to create, add items and handle item selections. Creating Submenu and adding items:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu fileMenu = menu.addSubMenu("File");
fileMenu.add(FILE, NEW_MENU_ITEM, 0, "new");
...
Handle Submenu item selections
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case NEW_MENU_ITEM:
doSomething();
break;
...
These simple code snippets shows how to create and use Submenu.
Also I am going to post full example. Copy to your IDE and run it:
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast;
/**
* Class which shows how to work with Submenus
*
* @author FaYnaSoft Labs
*/
public class Main extends Activity {
private static final int FILE = 0;
private static final int EDIT = 1;
private static final int NEW_MENU_ITEM = Menu.FIRST;
private static final int SAVE_MENU_ITEM = NEW_MENU_ITEM + 1;
private static final int UNDO_MENU_ITEM = SAVE_MENU_ITEM + 1;
private static final int REDO_MENU_ITEM = UNDO_MENU_ITEM + 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu fileMenu = menu.addSubMenu("File");
SubMenu editMenu = menu.addSubMenu("Edit");
fileMenu.add(FILE, NEW_MENU_ITEM, 0, "new");
fileMenu.add(FILE, SAVE_MENU_ITEM, 1, "save");
editMenu.add(EDIT, UNDO_MENU_ITEM, 0, "undo");
editMenu.add(EDIT, REDO_MENU_ITEM, 1, "redo");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case NEW_MENU_ITEM:
showMsg("New");
break;
case SAVE_MENU_ITEM:
showMsg("Save");
break;
case UNDO_MENU_ITEM:
showMsg("Undo");
break;
case REDO_MENU_ITEM:
showMsg("Redo");
break;
}
return super.onOptionsItemSelected(item);
}
private void showMsg(String message) {
Toast msg = Toast.makeText(Main.this, message, Toast.LENGTH_LONG);
msg.setGravity(Gravity.CENTER, msg.getXOffset() / 2,
msg.getYOffset() / 2);
msg.show();
}
}
As you can see Submenus are simple in use and also they are useful when need to group menu items.
If you’d like to get the latest posts as soon as they’re published, !
Related posts:

Recent Comments