Search code examples
javaandroidoptionmenu

Android: How can I set a listener to the MenuButton?


I want to do a custom action when pressing on the Menu button on the phone.

Is it possible to set an onClickListener (or similar) on the button and if so, how?

onCreateOptionsMenu is only called the first time the button is pressed - I've already tried this.


Solution

  • Usually you shouldn't override MENU behavior as users expect menu to appear, however you can use something along these lines:

    /* (non-Javadoc)
     * @see android.app.Activity#onKeyDown(int, android.view.KeyEvent)
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ( keyCode == KeyEvent.KEYCODE_MENU ) {
            Log.d(TAG, "MENU pressed");
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }