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.