Menu.FIRST是什么意思?

时间:2016-01-06 14:34:46

标签: android

我在这里看到了代码。有人可以解释什么是Menu.First以及为什么+1?我在Android开发者文档中找不到它。

    private static final int MENU_ADD = Menu.FIRST;
    private static final int MENU_LIST = MENU.FIRST + 1;
    private static final int MENU_REFRESH = MENU.FIRST + 2;
    private static final int MENU_LOGIN = MENU.FIRST + 3;

2 个答案:

答案 0 :(得分:0)

请参阅此documentation

FIRST指的是

  

组和项标识符整数的第一个值。

这是一个恒定值

  

常数值:1(0x00000001)

参考this link

答案 1 :(得分:0)

the accepted answer referenced in your comments的上下文中,海报只是将这些值用作动态添加菜单项的ID,以便点击可以在inOptionsItemSelected()中注册。

例如,假设您想动态地向menu添加一个新按钮,将屏幕变为蓝色,您可以创建一个名为MENU_TURN_SCREEN_BLUE的常量值。这将存储一个随后可用作id的任意数字。例如(请记住Menu.FIRST = 1

private static final int MENU_TURN_SCREEN_BLUE = Menu.FIRST + 60;

private static final int MENU_TURN_SCREEN_BLUE = 69084;

两者都有效。现在,当您使用add()方法向菜单添加新项目时,您可以使用此值:

menu.add(0, TURN_SCREEN_BLUE, 0, "Press To Turn Screen Blue");

你当然可以直接写入数字,但是常量是有用的(除其他原因外),以避免代码中因错误输入错误而导致的错误。

请注意,还有其他方法可以生成唯一ID - 请参阅this question了解详细信息。