【问题标题】:How to add an item to a group in a submenu如何将项目添加到子菜单中的组
【发布时间】:2018-01-05 10:06:57
【问题描述】:

运行时我想在这个组中添加一个项目inside(在我的选项菜单中):

<item
        android:id="@+id/action_module_selector"
        android:alphabeticShortcut="m"
        android:orderInCategory="30"
        android:title="@string/module_selector_menu_title"
        app:showAsAction="never">

        <menu>
            <group
                android:id="@+id/group_modules"
                android:checkableBehavior="single">

                <!-- Modules should be added here at runtime -->

            </group>
        </menu>
    </item>

如果我调用subMenu.add(R.id.group_modules, moduleId, 1, title);,它们最终会与组处于同一级别,而不是在组内,尽管我使用R.id.group_modules。我想知道如何将它们添加到组中。

【问题讨论】:

标签: android menu


【解决方案1】:

我通过删除组、将 sumbMenu 的项目设置为可检查并手动确保只选择其中一项来“解决”它。

subMenu.findItem(id).setCheckable(true);

关于变化:

private void updateSelectedModuleOnMenu(Menu menu, int selectedPosition) {

    MenuItem menuItem = menu.findItem(R.id.action_module_selector);
    SubMenu subMenu = menuItem.getSubMenu();

    for (int i = 0; i < subMenu.size(); i++) {
        MenuItem item = subMenu.getItem(i);
        item.setChecked(i == selectedPosition);
    }
}

使用我找不到的组的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多