Я хочу сделать пользовательское действие при нажатии на Menu
кнопка по телефону.
Действительно ли возможно установить onClickListener (или подобный) на кнопке и если так, как?
onCreateOptionsMenu
только назван в первый раз, когда кнопка нажимается - я уже попробовал это.
Обычно вы не должны отменять поведение MENU
, поскольку пользователи ожидают появления меню, однако вы можете использовать что-то вроде этих строк:
/* (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);
}
Но onPrepareOptionsMenu (..)
вызывается каждый раз. :)
Вы, вероятно, могли бы что-нибудь взломать, используя "OnMenuOpened" или что-то подобное, но я бы не рекомендовал это. Кнопка меню должна использоваться только для отображения меню, поэтому между приложениями существует согласованность.