2017-04-27 9 views
0

Au début, j'ai fait un Override de onBackPressed dans l'activité. Je peux attraper l'événement pressé de bouton de dos correctement avec cette méthode. Plus tard, pour détecter l'appui sur le bouton de volume, j'ai implémenté la méthode onKeyDown et onKeyUp. Ensuite, j'ai trouvé que peu importe que je retourne vrai ou faux de onKeyDown et onKeyUp, la méthode onBackPressed n'a jamais été virée. Est-ce que quelqu'un sait comment faire onBackPressed et onKeyDown, OnkeyUp tous à appeler en conséquence? Toute aide est très appréciée!onKeyDown et onKeyUp bloquer le onBackPressed

+0

Regardez [dispatchKeyEvent] (http://stackoverflow.com/a/2875006/2298490) Je crois que vous avez oublié d'ajouter le 'défaut : return super.dispatchKeyEvent (événement); ' – grill2010

+0

Vous avez totalement raison. dispatchKeyEvent résout mon problème. Ce que je retournais par défaut était super.onKeyUp (keyCode, event) et onKeyDown (keyCode, event) qui ne passerait pas l'événement à la méthode onBackPressed. – user1870797

+0

Je pense que vous pourriez poster votre réponse dans la zone de réponse afin que je puisse la cocher comme réponse acceptée. – user1870797

Répondre

1

Comme je l'ai déjà dit dans les commentaires c'est parce que vous avez oublié d'ajouter le default: return super.dispatchKeyEvent(event); dans la méthode dispatchKeyEvent.

Pour une meilleure clarification il suffit de regarder cet exemple de dispatchKeyEvent