点击ActionBar时隐藏/显示菜单项(Android)

3

我一直在尝试让我的操作栏按钮在单击时显示,但无法使其正常工作。我有两个按钮,如果我点击其中一个,我希望另一个按钮显示,并使另一个按钮不可见。
以下是我的代码:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    MenuItem brandsMenu = (MenuItem)findViewById(R.id.action_brands);
    MenuItem categoryMenu = (MenuItem)findViewById(R.id.action_category);
    switch (item.getItemId()) {
        case R.id.action_category:
            brandsMenu.setVisible(true);
            return true;
        case R.id.action_brands:
            categoryMenu.setVisible(true);

    }

这仅显示错误。有任何建议吗?
3个回答

7

当您想要对菜单进行更改时,需要调用InvalidateOptionsMenu

然后使用onCreateOptionsMenu重写来应用这些更改。


3
如果您使用支持库,请调用supportInvalidateOptionsMenu()而不是其他方法。 - Jannie Theunissen

2

在 onPrepareOptionsMenu 中定义名为 brandsMenu 和 categoryMenu 的菜单项,并初始化它们。

categoryMenu = menu.findItem(R.id.action_category);
brandsMenu = menu.findItem(R.id.action_brands);

您应该能够更改可见性,例如 categoryMenu.setVisible(true);


0

你不能直接设置菜单项的可见性。 你需要使选项菜单无效,并且只添加你想要显示的菜单项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接