如何在Navigation Drawer中添加菜单项运行时?

时间:2015-12-29 11:25:57

标签: java android

我正在使用Android Studio中的导航抽屉活动模板。我想在运行时从Navigation抽屉中的java类添加菜单项。可能吗 ?如果是的话,请指导我。

我想在左侧导航栏中显示来自Web服务的课程列表。我希望用户点击任何课程,这将打开另一个活动,显示有关所选课程的详细信息。

课程列表及其详细信息均采用JSON格式。我可以相应地解析json。我只想知道如何动态创建菜单项。

提前感谢你..

1 个答案:

答案 0 :(得分:4)

是的,您可以在运行时将菜单项添加到导航栏中。

从您的NavigationView布局中删除以下内容(这会使您的NavigationView菜单膨胀)

app:menu="@menu/activity_main_drawer"

在您的活动中,您可以使用

获取导航实例
NavigationView navigationView = (NavigationView)findViewById(R.id.nav_view)
navigationView.setNavigationItemSelectedListener(this);

您可以使用

获取导航视图的菜单实例
Menu menu = navigationView.getMenu();

要添加菜单项,您可以使用“菜单”实例

中提供的任一方法
public abstract MenuItem add (CharSequence title)  or 
public abstract MenuItem add (int groupId, int itemId, int order, int titleRes)

例如: 您可以使用上面的“菜单”实例添加menuitems /子菜单,如下所示

menu.add("Title1")
menu.add("Title2")
menu.addsubMenu("Title3").
menu.add("Title4")
... 

为了在用户点击特定菜单项时执行操作, 你将实施

onNavigationItemSelected(MenuItem item)

基于

item.getItemId() or item.getText() provided they are unique

你可以实现你的逻辑

相关问题