jjzjj

Android 和 ActionBarCompat : how to change visibility of actions at runtime on pre-ICS devices?

coder 2023-11-19 原文

我有一个 Activity extends ActionBarActivity 取自 ActionBarCompat 代码示例,我正在尝试显示/隐藏菜单项(操作) 在运行时。

我试过在 MenuItem 上使用 setVisible() 并适用于 ICS,但在 pre-ICS 中它只会改变菜单项的可见性(按下菜单按钮)而 ActionBar 不会收到菜单更改的通知。

有什么解决办法吗?提前致谢!

最佳答案

我在/res/menu/下创建了多个操作栏选项。我保留了一个成员来表明我现在正在使用哪个。要替换菜单,我调用:

protected void setMenuResource(int newMenuResourceId)
{
    _menuResource = newMenuResourceId;
    invalidateOptionsMenu();
}

然后我将 onCreateOptionsMenu() 重写为:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    if (_menuResource != 0)
    {
        getSupportMenuInflater().inflate(_menuResource, menu);
        return true;
    }
    return super.onCreateOptionsMenu(menu);
}

现在,如果我想更改操作项,我调用:

setMenuResource(R.menu.actionbar_menu_X);

关于Android 和 ActionBarCompat : how to change visibility of actions at runtime on pre-ICS devices?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9712186/

有关Android 和 ActionBarCompat : how to change visibility of actions at runtime on pre-ICS devices?的更多相关文章

随机推荐