Pregunta

Tengo un TabActivity y quiero capturar y manejar prensas de INICIO y la espalda. ¿Dónde necesito para atrapar a estos eventos?

En mi subclase de TabActivity que implementar los siguientes:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode) {
        // Code handling
    }

    return super.onKeyDown(keyCode, event);
}
No

funcionó.

Así que coloca un punto de interrupción en la línea de sentencia switch. Pero esta función no se vuelve a llamar, si el volumen que presione hacia arriba / abajo, el menú, el hogar o la espalda. ¿Dónde necesito para atrapar a estos KeyEvents?

¿Fue útil?

Solución 3

la actividad de cada pestaña maneja las prensas "atrás".

Otros consejos

resulta ser bastante fácil. Agregue el código siguiente a su actividad pestaña niño:

 @Override
  public void onBackPressed() {
    this.getParent().onBackPressed();   
  }

A continuación, en el TabActivity hacer la lógica real:

 @Override
  public void onBackPressed() {
    // Called by children
  }

De lo contrario, los niños interceptará y consumir el evento sin notificar al host pestaña.

Yo tenía el mismo problema y encontré anulando dispatchKeyEvent trabajó.

Un ejemplo de los cuales se puede encontrar aquí para botón de retroceso de prensa:

http: // android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

Tengo un TabActivity y quieren ponerse al día y prensas mango de INICIO y la espalda. ¿Dónde necesito para atrapar a estos eventos?

No se puede "prensas Mango de casa", nunca.

Con respecto a la parte posterior, usted puede utilizar onKeyDown() (para Android 1.x) o onBackPressed() (para Android 2.x). Sin embargo, su TabActivity puede ser demasiado tarde. Por ejemplo, si usted tiene actividades como el contenido de sus pestañas, puede ser que uno de ellos es la captura de la prensa BACK y arreglos para el procesamiento normal (es decir, obstrucción de la actividad). Desde que evitar actividades-AS-pestañas como la peste (excepto para un ejemplo de libro), no he experimentado con procesamiento botón ATRÁS en ese escenario.

intente esto en su oncreate()

setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_GLOBAL);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top