ActionbarSherlock设备菜单上打开子菜单上的keydown点击在安卓

问题描述:

我做动作栏福尔摩斯应用的新和开放的子菜单上点击顶栏动作条shelock和显示设备,但菜单上单击不打开子菜单里面的动作条shelock好心帮我。

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

下面IM cofuse开放的子菜单的操作栏福尔摩斯关键下来,

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,

我发现我对这个问题的自我解决方案,

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

首先,我们全局变量表演动作条福尔摩斯菜单上并初始化为onCreateOptionMenu,

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

和覆盖的onkeyup方法的活动定义,

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....!!!!!!