如何在Android中以编程方式向菜单项添加ID

时间:2018-11-27 21:50:33

标签: android menu menuitem navigationview

我想添加一个id名称以使用onNavigationItemSelected更改片段,但是我不能以编程方式添加一个id。 我需要类似显示在代码中的“ setId()”

menu.add("menu_name");
menu.getItem(i).setId("nav_item"+(i));
menu.getItem(i).setIcon(idIcon);

2 个答案:

答案 0 :(得分:0)

您可以使用add (int groupId, int itemId, int order, CharSequence title),第二个参数是菜单项的ID。 例如:

menu.add(0, 2, 0, "menu name");// 2 is the id value.

答案 1 :(得分:0)

Menu.java中有add()方法的签名:

/**
 * Add a new item to the menu. This item displays the given title for its
 * label.
 * 
 * @param groupId The group identifier that this item should be part of.
 *        This can be used to define groups of items for batch state
 *        changes. Normally use {@link #NONE} if an item should not be in a
 *        group.
 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
 *        unique ID.
 * @param order The order for the item. Use {@link #NONE} if you do not care
 *        about the order. See {@link MenuItem#getOrder()}.
 * @param title The text to display for the item.
 * @return The newly added menu item.
 */
public MenuItem add(int groupId, int itemId, int order, CharSequence title);

像这样使用它:

int newId = 100;
MenuItem newItem = menu.add(0, newId, 0, "New Item");

它返回新的菜单项。