2015-10-15 7 views
5

私のアプリでは、いくつかの条件に応じて特定のメニューを渡したいと思っています。Androidナビゲーションプログラムで設定メニューを表示

これはレイアウトです:

<android.support.design.widget.NavigationView 
     android:id="@+id/nav_view_free" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     android:background="@color/Color_White" 
     app:headerLayout="@layout/nav_header_main" 
     app:menu="@menu/activity_main_drawer_1" 
     /> 

私がやりたいすべては、いくつかの条件に依存dinamically @メニュー/ activity_main_drawer_1を変更することです。

これをプログラムで行うにはどうすればよいですか?

ありがとうございます。

+0

あなたは全体のメニューを変更したいか、単にこのメニューのメニューアイテムを変更したいですか..? –

+0

メニュー全体を変更したい – user3065901

答えて

9

inflateMenuを使用してください。

詳細については、hereを参照してください。

-2
 

Create Generic class Implements Menu iterface then add menu item 
NavigationView nd=(NavigationView)findViewById(R.id.nav_view_free); 

Menu mn=new Menu(); 

mn.add("email"); 

mn.add("email"); 

mn.add("email"); 

mn.add("email"); 

nd(mn); 


+0

この回答はうまくいきません。 (コンストラクタを使用して)メニューをインスタンス化することはできません。 NavigationViewでメニューを設定することはできません。 – Mdlc

8

navigationView.getMenu().clear(); navigationView.inflateMenu(R.menu.your_menu);