从代码中删除 android 菜单项

Removing an android menu item from code

我正在尝试在导航视图中创建一个订阅列表,当您订阅某个项目时,该项目的类别将显示在导航视图中,而当您取消订阅某个类别中的每个项目时,它应该删除从导航视图的菜单中选择该类别。

问题是删除类别我需要清除整个列表,然后逐项添加,但导航视图不仅仅包含订阅列表:它还允许用户在不同的活动中导航。如果我使用 menu.clear() 方法,导航项也将被删除。

要再次添加它们,我需要将项目 ID、组 ID、订单 int 和标题作为参数。我知道从哪里获取 ID 和标题,因为它们是在 XML 中编码的,但我不知道如何在列表中找到顺序,也不知道那是什么。

此外,如果您有更简单或更好的方法来解决此问题,请告诉我。

您可以使用菜单

<group...>

在 Android 文档中搜索。 然后根据需要setGroupVisible/enabled。

因为您知道菜单项的 ID,您可以调用 menu.removeItem(id) 来删除该项目。

我被告知 RemoveItem 可能会导致问题,所以我尽量避免这种情况。

我所做的是从我不想删除的项目中找到项目和组 ID,清除列表,然后添加具有已补订单的项目(我只是创建了一个变量并为每个变量递增我需要的项目),然后添加我需要的项目名称,无需交互。