在选项菜单中设置itemId

时间:2011-12-05 14:28:11

标签: android menuitem

我有一个通过XML资源定义的菜单。现在动态我添加一个菜单项

public boolean onCreateOptionsMenu(Menu menu) 
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.mainmenu, menu);

    if(myCondition==true)
    {
        menu.add(0, 99, 0, "new Entry");

    }

    return true;
}

在onOptionsItemSelected(MenuItem item)中我有一个case语句,它检查“99”并执行我的操作。从技术上讲,这很好,我只是想知道这是什么数字,这里99,我会选择?在XML中创建的项目通过资源文件获得了一个ID,我认为Android有一些逻辑来创建这些项目。我想知道生成的菜单项是否会偶然发生99,然后它将不再起作用。什么是最好的方式?

2 个答案:

答案 0 :(得分:5)

我总是使用带有title参数的重载,但是查看文档,似乎你可以传递NONE。

http://developer.android.com/reference/android/view/Menu.html#add(int, int, int, int)

答案 1 :(得分:0)

对我来说,愚蠢的解决方案是创建一个xml资源布局菜单,其中包含id的所有必需按钮,然后我可以使用自己的唯一ID在代码中引用它们,即使我没有使用该资源all - 字面意思只是一个有效随机生成ID的寄存器..