Android:独立菜单栏 - onPrepareOptionsMenu?

时间:2015-05-18 12:31:32

标签: android menu android-actionbar menuitem android-toolbar

我有一个活动,其顶部包含一个操作栏,底部有一个独立的工具栏。我想根据某个变量的值启用/禁用此工具栏中的项目。请注意,这是一个片段。

如果我有一个正常的操作栏菜单,我可以使用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;
        }
    });

1 个答案:

答案 0 :(得分:2)

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