android - 如何将项目添加到子菜单中的组

标签 android menu

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

<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。我想知道如何将它们添加到组中。

最佳答案

我通过删除组、将 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);
    }
}

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

关于android - 如何将项目添加到子菜单中的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48111278/

相关文章:

java - 为android webview java添加进度条

android - 如何从双 SIM 卡设备中获取两个电话号码?

Android 加载 Activity 堆栈,与后退按钮

安卓多点触控

android - Google 云端硬盘客户端/服务器应用程序

java - Android - 重新创建主 Activity 后菜单项不显示

java - MouseAdapter 中 isPopupTrigger() 的正确处理是什么

android - 运行时修改后选项菜单中丢失的项目

android - 是否可以获取操作栏中显示的菜单项数?

Eclipse RCP : Key binding for commands work, 但菜单中未显示快捷方式