2011-06-23 23 views

cevap

3

okk .. Bunu denemelisiniz ..

private static final int FILE = 0; 
    private static final int EDIT = 1; 

    private static final int NEW_MENU_ITEM = Menu.FIRST; 
    private static final int SAVE_MENU_ITEM = NEW_MENU_ITEM + 1; 

    private static final int UNDO_MENU_ITEM = SAVE_MENU_ITEM + 1; 
    private static final int REDO_MENU_ITEM = UNDO_MENU_ITEM + 1; 


@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     Log.i("this is test ", "oncreate option menu is called"); 
//  menu.add("this is first menu"); 
//  menu.add("this is second menu"); 
//  
     SubMenu fileMenu = menu.addSubMenu("File"); 
     SubMenu editMenu = menu.addSubMenu("Edit"); 
     fileMenu.add(FILE, NEW_MENU_ITEM, 0, "new"); 
     fileMenu.add(FILE, SAVE_MENU_ITEM, 1, "save"); 
     editMenu.add(EDIT, UNDO_MENU_ITEM, 0, "undo"); 
     editMenu.add(EDIT, REDO_MENU_ITEM, 1, "redo"); 
     return super.onCreateOptionsMenu(menu); 
    } 
+1

Eh, burada bir kodda her şeyi yaratıyorsunuz, ancak xml'de ve altında alt menü oluşturmak istediğim menü öğelerini kullanmak istiyorum. – Hunt

+0

Görünüşe göre, bu cevabın yazarı soruyu okumadı ve orijinal problemi bile çözemeyen bir cevap verdi –

6

mymenu.xml: Daha sonra kod Sonra

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
      android:id="@+id/menubutton_submenuButton" 
      android:showAsAction="always"/> 
     <menu> 
      <!-- empty submenu, filled programatically --> 
     </menu> 
    </item> 
</menu> 

: Biliyorum

@Override 
public boolean onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.mymenu, menu); 

    MenuItem menuItem = menu.findItem(R.id.menubutton_submenuButton); 
    SubMenu subMenu = menuItem.getSubMenu(); 
    // @todo: add submenu items programmatically here. 

    return super.onCreateOptionsMenu(menu, inflater); 
} 
3

bu çok çok olduğu eski iş parçacığı ama umarım bu aynı ihtiyacı olan benim gibi başkalarına yardım eder.

menu/movies.xml

: o zaman programlı

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools"> 
    <group> 
     <item 
      android:id="@+id/action_filter" 
      android:showAsAction="never" 
      android:title="Filter"> 
      <menu> 
       <group android:menuCategory="container"> 
        <item 
         android:id="@+id/action_genre" 
         android:title="Genre"> 
         <menu> 
          <group android:checkableBehavior="single" /> 
         </menu> 
        </item> 
       </group> 
      </menu> 
     </item> 
    </group> 
</menu> 

sizin activity/fragment tarih: Bu yardımcı olur

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 
    inflater.inflate(R.menu.movies, menu); 
    MenuItem menuItem = menu.findItem(R.id.action_filter).getSubMenu().findItem(R.id.action_genre).getSubMenu().add(Menu.NONE, 1, Menu.NONE, "Action"); 
    MenuItem menuItem = menu.findItem(R.id.action_filter).getSubMenu().findItem(R.id.action_genre).getSubMenu().add(Menu.NONE, 2, Menu.NONE, "Comedy"); 
} 

Umut.

+0

alt menüsü (Eylem ve Komedi) üzerine tıklayın Dinleyici eklemek nasıl. –

+0

@GunduBandagar OnOptionsItemSelected konumunda. Mesela basılan menünün kimliğini alın. menuItem.getId. Ardından başka bir ifade ifadesini kullanarak, bu kimliğin eylem veya komedi menüsüne eşit olup olmadığını kontrol edin ve işlemi buna göre yapın. – ank

İlgili konular