安卓:独立菜单栏 - onPrepareOptionsMenu?

4
我有一个包含顶部操作栏和底部独立工具栏的活动。我想根据某些变量的值启用/禁用此工具栏中的项目。请注意,这是在片段内部。
如果我有一个普通的操作栏菜单,我可以在onPrepareOptionsMenu(Menu menu)方法中执行此操作。但是该方法不适用于工具栏,而且我也无法区分哪个工具栏(如果被调用)。
那么如何准备工具栏及其菜单项呢?
这是我的工具栏XML:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/item_medizinische_daten"
    android:title="@string/medizinische_daten"
    app:showAsAction="always"></item>
</menu>

这是我的代码:

    toolbarBottom = (Toolbar) getActivity().findViewById(R.id.toolbar_bottom);
    toolbarBottom.inflateMenu(R.menu.menu_toolbar_medizinische_daten);
    toolbarBottom.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem menuItem) {
            switch (menuItem.getItemId()) {
                case R.id.item_medizinische_daten:
                    Toast.makeText(getActivity(), "Medizinische Daten clicked", Toast.LENGTH_LONG).show();
                    break;
                default:
            }
            return true;
        }
    });

为什么你不直接调用toolbarBottom.getMenu(),然后使用返回的Menu对象来更改其子项呢? - user
@Luksprong 很好的问题:没有什么。将它作为答案发布,我会接受它。谢谢。 - mrd
1个回答

3

Toolbar小部件有一个getMenu()方法,您可以使用它来检索在其上填充的Menu。然后,您可以使用该Menu引用,并通过findItem()getItem()找到其子项并更改它们。


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