繁体   English   中英

如何在导航抽屉中添加菜单项运行时?

[英]How to add menu items runtime in Navigation Drawer?

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

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

课程列表及其详细信息包含在JSON中。 我可以相应地解析json。 我只想知道我该如何动态创建菜单项。

预先谢谢你。

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

从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)

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

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

为了在用户单击特定菜单项时执行操作,您将执行

onNavigationItemSelected(MenuItem item)

基于

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

你可以实现你的逻辑

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM