2

私はアクションバーのシャーロックアプリケーションを作成し、クリックしてトップバーのアクションバーシェロックのサブメニューを開きますが、デバイスメニューをクリックしてアクションバーの内部のサブメニューを開きませんシェルロックが親切に助けてくれます。

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

ここでは、キーを押したときにアクションバー sherlock のサブメニューを開くために cofuse を使用しています。

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

前もって感謝します、

4

1 に答える 1

5

この質問に対する自己解決策を見つけました。

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

最初にグローバル変数をアクションバーの sherlock メニューに表示し、onCreateOptionMenu を初期化します。

また、アクティビティ定義の onkeyup オーバーライド メソッド、

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

だから、それが非常にうまく機能していて、そのような例外がスローされないことを嬉しく思います.... !!!!!!

于 2013-07-26T04:25:28.657 に答える