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;
}
我正在使用官方 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;
}