0

キーアップイベントをリッスンするactionbarsherlockを使用しています。ハードウェアメニューボタンの場合、メニューをこのように強制的に表示します

public boolean onKeyDown(int keyCode, KeyEvent event) {
try {
    if(event.getAction() == KeyEvent.ACTION_DOWN){
        switch(keyCode) {
        case KeyEvent.KEYCODE_MENU:
            if (mMenu != null && mMenu.findItem(R.id.training_action_menu_group1) != null) {
                mMenu.performIdentifierAction(R.id.training_action_menu_group1, Menu.FLAG_PERFORM_NO_CLOSE);
            }

            return true;  
        }
    }
    return false;
} catch (Exception e) {
    ErrorUtil.handleSilentException(e);
    Log.e(TAG, "Error onKeyDown", e);
}
return false;
}

問題は、ユーザーがハードウェア メニュー ボタンに指を置いたままにするとメニューが表示され、指を離すとメニューが閉じることです。これは、SGS 3 およびその他のデバイスで発生します。フラグMenu.FLAG_PERFORM_NO_CLOSEはこの問題とは無関係のようですが、他の android 2.3 携帯電話の問題を何らかの形で修正しました。

ユーザーがボタンから指を離したときにメニューを開いたままにしておくにはどうすればよいですか?

4

0 に答える 0