ActionbarSherlock open submenu on device menu on keydown click in android

核能气质少年 提交于 2019-12-11 02:38:13

问题


I make action bar sherlock appliction and open for submenu on top bar actionbar shelock on click and shown but on device menu click not open for submenu inside for actionbar shelock kindly help me.

@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;
}

Here i m cofuse for open submenu for action bar sherlock on key down,

    @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);
}

Thanks in advance,


回答1:


I found for my self solution for this 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;
}

First We Global variable show on actionbar sherlock menu and initialize for onCreateOptionMenu,

And onkeyup override method for activity define,

@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;
}

So, be happy its working very fine and no such any exception throws....!!!!!!



来源:https://stackoverflow.com/questions/17232630/actionbarsherlock-open-submenu-on-device-menu-on-keydown-click-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!