2011-04-15 32 views
12

Estoy haciendo la aplicación de intercambio ... quiero desactivar el botón Atrás. Así que uso el código ... y pasé la intención de que se ..cómo desactivar el botón Atrás en Android

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
     // do something on back. 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 

pero mientras se ejecuta cuando se presiona el botón de nuevo emulador que las actualizaciones de actividad, pero cuando me reprimo botón de retroceso que cambie a la página principal de una emulador .. por favor sugiera es su cualquier otro método

+1

Puede anular cualquiera de estos métodos 'dispatchKeyEvent',' onBackPressed', 'onKeyDown'. Consulte [esta respuesta] (https://stackoverflow.com/a/44714357/6521116) para obtener más información. –

Respuesta

62
@Override 
public void onBackPressed() { 
    // do nothing. 
} 
+0

sí ... este método funcionó bien ... thanx – Sam

+0

acabo de aplicar @Override public void onBackPressed() { // no hago nada. devolución; } y aplicando el intento ahora puedo cambiar a la página donde quiero – Sam

+0

Gracias, me ayuda a mí también:) – Dimitri

6

¿Probas onBackPressed()?

@Override 
public void onBackPressed() { 
     // Do as you please 
} 
3

Esta es mi solución funciona con Android 2.2 anulación

onBackPressed() ...

public void onBackPressed() { 
    // check if you are in the right mode 
    if (getCurrentState() == FORM_STATE_BROWSE) { 
     // ok do default back action 
     super.onBackPressed(); 
    } 

    // exit skipping "onBackPressed()" 
    return; 
} 
16
@Override 
     public void onBackPressed() { 
      //super.onBackPressed(); 
      if(SOME_CONDITION_TO_CHECK){ 
       //THIS BLOCK WILL NOT DO ANYTHING AND WOULD DISABLE BACK BUTTON 

      }else{ 
       super.onBackPressed(); 
//THIS BLOCK WILL BE CALLED IF ABOVE COND IS FALSE, AND WOULD ENABLE BACK BUTTON 
      } 

     } 
1

Al igual que si desea mover en alguna actividad al presionar el botón Atrás, anula este método en su actividad

@Override 
    public void onBackPressed() { 
     // do nothing. 
     Intent intent = new Intent(SocialPlugIns.this, MainActivity.class); 
     Log.i("Hello", "This is Coomon Log"); 
     startActivity(intent); 
      return; 
    } 
2

Usted debe añadir retorno con el fin de que esto con éxito el trabajo en todos los dispositivos, mi nota 3 & HTC todavía volver si no incluyo regreso!

@Override 
     public void onBackPressed() { 
      return; 
     } 
+0

Eso parece muy extraño porque Java no puede ver ninguna diferencia entre no devolver y devolver en este caso. Devolver simplemente sale del método sin hacer nada – JohnyTex

+0

Solo publicando lo sucedido, no tengo una razón técnica. – Petro

0

Tiene que anular la función onBackPressed(). A continuación voy a dar una forma:

@Override 
    public void onBackPressed() { 
     //make some alert for the user 
    } 
Cuestiones relacionadas