2013-06-21 2 views
3

Je fais l'action sherlock barre d'action et ouvrir pour le sous-menu sur la barre d'action et cliquez sur le menu de l'appareil cliquez sur ne pas ouvrir pour sous-menu à l'intérieur.ActionbarSherlock ouvrir le sous-menu sur le périphérique sur le clavier cliquez sur android

@Override 
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { 
    com.actionbarsherlock.view.SubMenu subMenu = menu.addSubMenu("Menu"); 
    subMenu.add(0, SUB_MENU_1, 0,"Settings"); 
    com.actionbarsherlock.view.MenuItem menuItem = subMenu.getItem(); 
    menuItem.setIcon(R.drawable.menu_selector); 
    menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
    return true; 
} 

Ici im cofuse pour le sous-menu ouvert pour sherlock barre d'action sur la touche enfoncée,

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (event.getAction() == KeyEvent.ACTION_DOWN) { 
     switch (keyCode) { 
     case KeyEvent.KEYCODE_MENU: 
         // here some write code 
      return true; 
     } 
    } 
    return super.onKeyDown(keyCode, event); 
} 

Merci à l'avance,

+0

Je suis également confronté au même problème. S'il vous plaît laissez-moi savoir si cela est résolu. Merci. – Kameswari

Répondre

6

J'ai trouvé ma solution auto pour cette question,

public Menu menuMain; 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    menuMain = menu; 
    subMenu = menu.addSubMenu(0, MENU_ID_1, 0, "Menu"); 
    subMenu.add(0, SUB_MENU_1, 0, getString(R.string.menu_settings)); 
    subMenu.add(0, SUB_MENU_2, 0, getString(R.string._new)); 
    menuItem = subMenu.getItem(); 
    menuItem.setIcon(R.drawable.menu_selector); 
    menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
    return true; 
} 

La variable First We Global apparaît dans le menu sherlock de la barre d'action et s'initialise pour onCreateOptionMenu,

Et onkeyup méthode de remplacement pour l'activité définir,

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if (event.getAction() == KeyEvent.ACTION_UP || event.getAction() == KeyEvent.ACTION_DOWN) { 

     switch (keyCode) { 
     case KeyEvent.KEYCODE_MENU: 
      if (menuMain != null && menuMain.findItem(MENU_ID_1) != null) 
       menuMain.performIdentifierAction(MENU_ID_1, 0); 
      return true; 
     } 
    } 
    return false; 
} 

Alors, soyez heureux de son travail très bien et aucune exception .... !!!!!! jette

+0

Merci, j'ai aidé ce code –

Questions connexes