2017-04-17 22 views
0

在我的應用程序,我需要改變navigationView的菜單,當我點擊標題
First state
Second state
我想獲得當前活動菜單我的navigationView在兩個菜單之間切換。這是我至今寫:獲取navigationView當前菜單R.menu

public void toggleMenu(){ 
    navigationView.getMenu().clear(); 
    navigationView.inflateMenu(R.menu.menu_trips); 
} 

相反膨脹相同的菜單所有的時間,我需要創建一個,如果膨脹是當前沒有激活的菜單,像這樣:

if (navigationView == R.menu.menu_trips){ 
    navigationView.inflateMenu(R.menu.activity_main_drawer); 
} else if (navigationView == R.menu.activity_main_drawer){ 
    navigationView.inflateMenu(R.menu.menu_trips); 
} 

我不想添加一個MenuItem,我只想替換菜單。清理它,然後充氣是我發現的最佳選擇。 如果您有更好的解決方案,請告訴我:)

回答

0

您無法從Menu類獲取菜單ID。 我建議你保留一個全局變量來保存你當前的菜單ID。或者您可以比較第一個項目以瞭解哪個菜單當前處於活動狀態。

+0

謝謝你的快速幫助!我想獲取當前菜單的ID,而不是菜單的活動項目。或者,我應該比較第一個menuItem,並根據此獲取活動菜單? –

+0

更新了我的答案。 – mertsimsek

0

解決它:

String activeMenu; 

protected void onCreate(){ 
    activeMenu = "main"; 
} 

public void toggleMenu(){ 
    navigationView.getMenu().clear(); 
    if (activeMenu.equals("main")){ 
     navigationView.inflateMenu(R.menu.menu_trips); 
     activeMenu = "trips"; 
    } else if (activeMenu.equals("trips")){ 
     navigationView.inflateMenu(R.menu.activity_main_drawer); 
     activeMenu = "main"; 
    } 
}