我已经在xml中创建了我的父菜单,现在我不知道如何使用代码在这些父项下创建子菜单.这意味着,父项在menu.xml中编码,子数据将在数据可用时根据动态代码加载.
当我尝试使用menu.addSubMenu时,它正在创建一个新的父菜单项.
mymenu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menubutton_submenuButton"
android:showAsAction="always"/>
<menu>
<!-- empty submenu, filled programatically -->
</menu>
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
然后在代码中:
@Override
public boolean onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.mymenu, menu);
MenuItem menuItem = menu.findItem(R.id.menubutton_submenuButton);
SubMenu subMenu = menuItem.getSubMenu();
// @todo: add submenu items programmatically here.
return super.onCreateOptionsMenu(menu, inflater);
}
Run Code Online (Sandbox Code Playgroud)
好的..你应该试试这个..
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 boolean onCreateOptionsMenu(Menu menu) {
Log.i("this is test ", "oncreate option menu is called");
// menu.add("this is first menu");
// menu.add("this is second 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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10441 次 |
| 最近记录: |