具有自定义属性的菜单
Menu with custom attributes
我想制作菜单(用于 NavigationDrawer):
每个项目 - 用户组件(扩展 LinearLayout
)
通过 xml 菜单文件映射菜单
"put" 所有这些到 ListView
(适配器)
看起来可以将自定义属性添加到菜单项:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom ="http://schemas.android.com/apk/res-auto"
>
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_login"
android:title="Login"
custom:description="TEST"/>
.....
但我不知道如何为此创建适配器并在 getView()
中获取自定义属性
更新
我创建了适配器并将菜单传递给它
PopupMenu p = new PopupMenu(this, null);
Menu menu = p.getMenu();
getMenuInflater().inflate(R.menu.activity_main_drawer, menu);
... new AdapterMenu(getApplicationContext(),menu);
所以现在我需要从 MenuItem
获取我的自定义属性
检查了 MenuInflater
代码,此 class 的主要思想 - 获取 menu.xml
并将其解析为实现 menu
的对象。因此,由于 menu
具有一定的结构 - 我发现的唯一方法 - 创建自定义 Menu
和 MenuInflater
classes
我想制作菜单(用于 NavigationDrawer):
每个项目 - 用户组件(扩展
LinearLayout
)通过 xml 菜单文件映射菜单
"put" 所有这些到
ListView
(适配器)
看起来可以将自定义属性添加到菜单项:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom ="http://schemas.android.com/apk/res-auto"
>
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_login"
android:title="Login"
custom:description="TEST"/>
.....
但我不知道如何为此创建适配器并在 getView()
更新 我创建了适配器并将菜单传递给它
PopupMenu p = new PopupMenu(this, null);
Menu menu = p.getMenu();
getMenuInflater().inflate(R.menu.activity_main_drawer, menu);
... new AdapterMenu(getApplicationContext(),menu);
所以现在我需要从 MenuItem
检查了 MenuInflater
代码,此 class 的主要思想 - 获取 menu.xml
并将其解析为实现 menu
的对象。因此,由于 menu
具有一定的结构 - 我发现的唯一方法 - 创建自定义 Menu
和 MenuInflater
classes