我正在使用来自Android的导航抽屉活动模板。我想在运行时从导航抽屉中的java类中添加菜单项。有可能吗?如果是的话,你能指点我吗?
我想在左边的导航抽屉上显示来自web服务的课程列表。我希望用户点击任何课程,这将打开另一个活动,显示有关所选课程的详细信息。
课程列表及其细节在JSON中。我可以相应地解析json。我只想知道如何动态创建菜单项。
提前感谢你..。
发布于 2015-12-29 12:29:20
是的,您可以在运行时将菜单项添加到导航抽屉中。
从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你可以实现你的逻辑
https://stackoverflow.com/questions/34510012
复制相似问题