Android:onNavigationItemSelected 的自定义 MenuItem?

Android: Custom MenuItem for onNavigationItemSelected?

我正在使用官方 android NavigationDrawer 开发应用程序,我创建了自己的自定义 MenuItem 因为默认的 MenuItem 允许您分配一个 string通过 menuItem.setTitle() 添加到它,但我也想添加另一个字符串。所以我创建了这个自定义 CatMenuItem.java:

如您所见,它实现了 MenuItem 并且我为该字符串添加了一个名为 catId 的字符串和一个 setter 以及一个 getter。

现在在 MainActivity 中的 onNavigationItemSelected 中,当我将 CatMenuItem 而不是 MenuItem 作为参数时,我收到一条错误消息 Method does not override method from its superclass:

我已经尝试了所有方法并搜索了很多文章,但没有任何效果,请记住我不想将菜单更改为 ListView,我想要原样的菜单。

我想要的是: 从选定的菜单项中获取字符串 catId

非常感谢任何帮助。

编辑 设置 catId: 在 MainActivity 中,我创建了一个名为 getContents 的方法来从 url (JSON) 中获取内容以将值分配给菜单,您可以在下图中看到我是如何分配的catId 的值:

Activity class 不包含方法 onNavigationItemSelected。您必须在 MainActivity 中实现 NavigationView.OnNavigationItemSelectedListener 才能覆盖它。

尝试让 onNavigationItemSelected() 的参数保持不变,然后像这样转换参数:

@Override
public void onNavigationItemSelected(MenuItem menuItem) {
    CatMenuItem catMenuItem = (CatMenuItem) menuItem;
}