2012-03-05 7 views
9

Quiero implementar la funcionalidad de botón de retroceso en mi aplicación. En la aplicación cada vez que hago clic en el botón Atrás en el centro, mi control va directamente a la página de inicio de sesión, así que ¿alguien puede decirme dónde anular los métodos onKeyDown() o onBackPressed()?onKeyDown() o onBackPressed()

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back key pressed","Back key pressed"); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

porque yo estoy escribiendo esto dentro y fuera onCreate onCreate también, pero no está funcionando ......

+0

En general, los métodos como 'onKeyDown()' o 'onBackPressed()' debe ser anulación (usted puede tomar ventaja de IDE, es decir, Eclipse, para hacerlo muy bien), por lo que debería estar fuera de 'onCreate()'. ¿Puedes explicar tu problema exactamente? ¿Qué pasa? – Huang

+0

Mire esta respuesta: http://stackoverflow.com/a/3558613/571353 – SERPRO

+1

agregue @Override sobre la función ... ??? – mihail

Respuesta

7

depende de si desea o no para apoyar pre-Android 2.0 teléfonos. El método onBackPressed() se agregó a Android 2.0 (API 5).

Es posible que desee leer este post en el blog de desarrolladores de Android para obtener más información:

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

+0

gracias hombre, pero donde escribir este método ???? porque estoy tratando de escribir este método en onCreate and out side onCreate también, pero el control todavía no está dentro del método ¿me pueden ayudar con una respuesta simple ??? – user1249134

+0

Gracias a todos .... :-))))) Ustedes son brillantes ............. – user1249134

3

Sí se puede anular ese botón atrás

public void onBackPressed() { 

    Intent start = new Intent(currentclassname.this,which activity u want.class); 
     startActivity(start); 
     finishActivity(0); 
     } 

Por esto usted puede avanzar en cualquier actividad. Esta es una manera muy fácil y simple

1

Si su preocupación es eliminar la actividad de inicio de sesión de la pila de historial.

Ejecutar finish(); en su actividad de inicio de sesión cuando inicia cualquier otra actividad desde ese

+0

3-05 14: 13: 56.327: W/KeyCharacterMap (374) : Usar el mapa de teclas predeterminado: /system/usr/keychars/qwerty.kcm.bin – user1249134

+0

HOLA amigos, mi control no está dentro del método OnBack? ¿Algún cuerpo puede ayudar a regrabar esto ???? – user1249134

+0

Intent edit = new Intent (getParent(), MyGroup.class); \t \t TabGroupActivity parentActivity = (TabGroupActivity) getParent(); \t \t parentActivity.startChildActivity ("Agregar contactos", editar); – user1249134

3

vea el código a continuación. escribir fuera del onCreate

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     //replaces the default 'Back' button action 
     if(keyCode==KeyEvent.KEYCODE_BACK) 
     { 

       Intent intent = new Intent(currentActivity.this, RequiredActivity.class); 
       finish(); 
       startActivity(intent); 

     } 
     return true; 
    } 
Cuestiones relacionadas