Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 493
whlk Avatar asked Mar 19 '10 15:03

whlk


2 Answers

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);
}
like image 172
Diego Torres Milano Avatar answered Oct 07 '22 02:10

Diego Torres Milano


But onPrepareOptionsMenu(..) is called each time. :)

like image 25
yanchenko Avatar answered Oct 07 '22 02:10

yanchenko