2017-09-18 205 views
0

我試圖將menuitem添加到子菜單,但我沒有將它們添加到我正在經歷的id項目中。將項目添加到sidemenu

我在代碼中添加的內容是在最後創建的,但我想要的是將它添加到我在XML中創建的'R.id.sidemenu_groups'子菜單中。

這是代碼:

<?xml version="1.0" encoding="utf-8"?> 

<group 
    android:id="@+id/sidemenu_principal" 
    android:checkableBehavior="single"> 
    <item 
     android:id="@+id/nav_user_contacts" 
     android:icon="@drawable/ic_menu_gallery" 
     android:title="Favoritos" /> 
    <item 
     android:id="@+id/nav_team_contacts" 
     android:icon="@drawable/ic_menu_gallery" 
     android:title="Contactos de la empresa" /> 
    <!--<item 
     android:id="@+id/nav_slideshow" 
     android:icon="@drawable/ic_menu_slideshow" 
     android:title="Registro" /> 
    <item 
     android:id="@+id/nav_manage" 
     android:icon="@drawable/ic_menu_manage" 
     android:title="Favoritos" />--> 
</group> 

<item 
    android:id="@+id/sidemenu_groups" 
    android:title="Departamentos"> 
    <menu 
     android:checkableBehavior="single"> 
     <item 
      android:id="@+id/add_item" 
      android:icon="@drawable/ic_menu_manage" 
      android:title="Add Item" /> 
    </menu> 
</item> 


<item android:title="Ajustes"> 
    <menu android:id="@+id/sidemenu_other"> 
     <item 
      android:id="@+id/nav_settings" 
      android:icon="@drawable/ic_menu_manage" 
      android:title="Ajustes" /> 
     <item 
      android:id="@+id/nav_send" 
      android:icon="@drawable/ic_menu_send" 
      android:title="Send" /> 
    </menu> 
</item> 

private void makeMenu() { 
    final Menu menu = navigationView.getMenu(); 
    final SubMenu subMenu = menu.addSubMenu("Departamentos"); 
    subMenu.add(R.id.sidemenu_groups, Menu.CATEGORY_SECONDARY, 0, "Menu3"); 
} 

Menu image

我如何添加diferents項目R.id.sidemenu_groups?

在此先感謝

回答

1

你做了一個小錯誤,只要確保你這樣做,你就可以實現你想達到的目標。 永遠不要忘記,以增加不同的東西編程

private void makeMenu() { 
final Menu menu = navigationView.getMenu(); 
//since you have called the navMenu object you don't have to go for any submenu 
//this way you add the menu items 
menu.add(R.id.sidemenu_groups, 1, 100, "Menu3"); 
menu.add(R.id.sidemenu_groups, 2, 200, "Menu4"); 
menu.add(R.id.sidemenu_groups, 3, 300, "Menu5"); 
//make sure to make this as single checkable and if you've set you navItem as invisible then do make it visible 
menu.setGroupCheckable(R.id.sidemenu_groups, true, true); 
menu.setGroupVisible(R.id.sidemenu_groups, true); } 

給不同的ID EDITS

嘗試增加給你的代碼,並告訴我,如果作品

MenuItem menu = 
    navigationView.getMenu().findItem(R.id.sidemenu_groups); 
    SubMenu subMenu = menu.getSubMenu(); 
    //then try adding all the item like this 
    subMenu.add("Menu3"); 
    subMenu.add("Menu4"); 
    subMenu.add("Menu5"); 
    //make sure to make this as single checkable and if you've set you 
    //navItem as invisible then do make it visible 
    menu.setGroupCheckable(R.id.sidemenu_groups, false, false); 
    menu.setGroupVisible(R.id.sidemenu_groups, true); } 

快樂學習!告訴我你是否面臨任何問題。

+0

謝謝,但我需要這裏面的三個項目: [code] <菜單 機器人:ID = 「@ + ID/sidemenu_groups」 機器人:checkableBehavior = 「單」> <---我在這裏需要的項目 - > <項目 機器人:ID =「@ + id/add_item」 android:icon =「@ drawable/ic_menu_manage」 android:title =「Add Item」/>

+0

https://imgur.com/a/MDnH5 –

+0

看到我的回答中的編輯,並嘗試實施並告訴我你是否得到預期的結果 –

0

一個簡單的解決方案是,你可以創建一個使用recyclerView/ExpandableListView您的自定義菜單。這會給你更多的靈活性。

+0

請發佈完整的答案,並附上正確的解釋和參考鏈接到您的答案,並嘗試發佈代碼屁股,以提出一個合適的解決方案 –