是否可以通过编程方式更改选项菜单项?有人能给我举个例子吗?
另外,我想禁用某些项目,这样他们就不会听到点击的声音,这是可能的吗?
发布于 2012-07-28 17:44:42
对于需要动态更改菜单选项的任何人:
private Menu menu;
// ...
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
this.menu = menu;
getMenuInflater().inflate(R.menu.options, menu);
return true;
}
// ...
private void hideOption(int id)
{
MenuItem item = menu.findItem(id);
item.setVisible(false);
}
private void showOption(int id)
{
MenuItem item = menu.findItem(id);
item.setVisible(true);
}
private void setOptionTitle(int id, String title)
{
MenuItem item = menu.findItem(id);
item.setTitle(title);
}
private void setOptionIcon(int id, int iconRes)
{
MenuItem item = menu.findItem(id);
item.setIcon(iconRes);
}
发布于 2011-08-21 01:33:32
menu.xml
<item
android:id="@+id/item1"
android:title="your Item">
</item>
放入java文件中。
public void onPrepareOptionsMenu(Menu menu) {
menu.removeItem(R.id.item1);
}
发布于 2012-11-15 07:07:51
就像Nikolay说的那样,在onPrepareOptionsMenu()中这样做。
对于操作栏中的菜单项,必须使用activity.invalidateOptionsMenu();
使菜单无效
这里对此进行了更详细的描述How can I refresh the ActionBar when onPrepareOptionsMenu switched menu entries?
https://stackoverflow.com/questions/7133141
复制相似问题