在运行时我想在这个组内添加一个项目(在我的选项菜单中):
<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/