Android: ¿Cómo agregar el oyente al botón del menú del hardware?

Actualmente estoy intentando agregar un oyente de clics al botón de hardware del menú. Actualmente solo estoy poniendo mi lógica onclick en el método onCreatePanelMenu y devuelvo false. Pero eso sólo se siente mal.

¿Hay una manera más limpia?

El código actualmente se ve así:

@Override public boolean onCreatePanelMenu(int featureId, Menu menu) { Toast.makeText(this, "HALLO!", Toast.LENGTH_SHORT).show(); return false; } 

Capture el evento clave dentro de onKeyDown() y añada su acción allí.

Muestra:

 @Override public boolean onKeyDown(int keycode, KeyEvent e) { switch(keycode) { case KeyEvent.KEYCODE_MENU: doSomething(); return true; } return super.onKeyDown(keycode, e); } 

Simplemente reemplace doSomething() con su funcionalidad / métodos.

Si necesita algunos ejemplos de código, puede probar esto:

 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.preferences: showPreferencesActivity(); return true; case R.id.logOff: logOff(); return true; default: return super.onOptionsItemSelected(item); } } 

Lo anterior debe ser bastante auto explicativo – establece un menú con las opciones para mostrar preferencias o cerrar sesión.

Nicklas

Prueba esto http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu

Si desea cambiar el Menú de opciones en cualquier momento después de que se cree por primera vez, debe reemplazar el método onPrepareOptionsMenu ()

Por lo que el sistema llamará onPrepareOptionsMenu() cada vez que el usuario haga clic en la tecla Menu

onContextItemSelected

onOptionsItemSelected

Yo beleive son lo que usted está buscando.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.