首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >android:以编程方式更改选项菜单项

android:以编程方式更改选项菜单项
EN

Stack Overflow用户
提问于 2011-08-21 00:36:29
回答 11查看 113.9K关注 0票数 89

是否可以通过编程方式更改选项菜单项?有人能给我举个例子吗?

另外,我想禁用某些项目,这样他们就不会听到点击的声音,这是可能的吗?

EN

回答 11

Stack Overflow用户

发布于 2012-07-28 17:44:42

对于需要动态更改菜单选项的任何人:

代码语言:javascript
复制
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);
}
票数 214
EN

Stack Overflow用户

发布于 2011-08-21 01:33:32

menu.xml

代码语言:javascript
复制
  <item 
    android:id="@+id/item1"
    android:title="your Item">
  </item>

放入java文件中。

代码语言:javascript
复制
  public void onPrepareOptionsMenu(Menu menu) {

    menu.removeItem(R.id.item1);
}
票数 35
EN

Stack Overflow用户

发布于 2012-11-15 07:07:51

就像Nikolay说的那样,在onPrepareOptionsMenu()中这样做。

对于操作栏中的菜单项,必须使用activity.invalidateOptionsMenu();使菜单无效

这里对此进行了更详细的描述How can I refresh the ActionBar when onPrepareOptionsMenu switched menu entries?

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7133141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档