我有一个通过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,然后它将不再起作用。什么是最好的方式?
答案 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的寄存器..