2010-10-21 8 views
5

Je veux bloquer le bouton matériel retour dans Android, afin d'éviter de retourner à d'autres activités .. Merci à l'avance ...Bloc Retour Bouton dans Android

+0

Ne faites pas cela .. – Falmarri

+0

Aucune raison de voter, car la question est légitime: Vous pouvez empêcher le bouton de retour pour les boîtes de dialogue, donc au moins lorsque vous utilisez une activité dans un style de dialogue, il peut être judicieux de bloquer le bouton de retour. – sven

Répondre

17

Voici le code qui vous permet de gérer la clé du retour à une activité correctement sur toutes les versions de la plate-forme:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ( Integer.valueOf(android.os.Build.VERSION.SDK) < 7 //Instead use android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR 
      && keyCode == KeyEvent.KEYCODE_BACK 
      && event.getRepeatCount() == 0) { 
     // Take care of calling this method on earlier versions of 
     // the platform where it doesn't exist. 
     onBackPressed(); 
    } 

    return super.onKeyDown(keyCode, event); 
} 

@Override 
public void onBackPressed() { 
    // This will be called either automatically for you on 2.0 
    // or later, or by the code above on earlier versions of the 
    // platform. 
    return; 
} 

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

+0

Excellent à savoir, surtout en raison du backstack maladroite Android Frgagment qui ne vous permet pas d'effacer les éléments les plus anciens tout en gardant le plus récent. –

+0

@ 100rabh, j'ai utilisé votre code ci-dessus qui a parfaitement fonctionné dans mon GameView. Cependant, dans la vue, j'ai des fenêtres de dialogue. Comment puis-je mettre en œuvre la désactivation ci-dessus du bouton de retour pour les popups? Merci –

+0

@LandLPartners Pour les boîtes de dialogue, vous devez manipuler les clés en utilisant [DialogInterface.OnKeyListener] (http://developer.android.com/reference/android/content/DialogInterface.OnKeyListener.html). Il suffit d'attraper la clé arrière comme ci-dessus et vous avez terminé! – 100rabh

4

Si la « autre activité » est le vôtre, vous pouvez le définir pour ne pas apparaître dans la liste de l'historique. Sinon, n'oubliez pas que le téléphone appartient à l'utilisateur et non à vous, et arrêtez d'essayer de leur dire ce qu'ils peuvent et ne peuvent pas faire avec leur appareil.

+0

+1 Arrêtez de jouer avec le comportement attendu. – benvd

+2

Je pense que dans certains cas c'est acceptable. Je viens d'en rencontrer un où j'ai un ensemble de préférences qui sauvent automatiquement lorsque l'utilisateur revient, mais dans le cas où ils ont oublié de remplir un champ, je les alerte pour confirmer s'ils veulent revenir en arrière perdant des changements. .. – Redth