在选项菜单中设置itemId

And*_*oid 12 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;
}
Run Code Online (Sandbox Code Playgroud)

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

Kev*_*mbe 5

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

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

  • 如果我使用此重载(或NONE),您如何评估onOptionsItemSelected方法?你需要检查那里的ID,否则你不知道按下了什么菜单? (3认同)