Comment gérer bouton de Retour dans la boîte de dialogue?
Je développe une application que lorsque le bouton est pressé, il ouvre une boîte de dialogue avec les boutons OK et Annuler.
Il fonctionne très bien.
Lorsque l'utilisateur appuie sur le bouton retour, je suis de la manipulation de ce comme suit
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
}
return super.onKeyDown(keyCode, event);
}
Mais la méthode ci-dessus n'est pas appelé. Comment puis-je gérer cela?
- Voulez-vous que l'utilisateur soit en mesure d'annuler la boîte de dialogue? Ou quelle est votre onKeyDown partie faire?
- u être un peu plus clair ??
Vous devez vous connecter pour publier un commentaire.
Dialog
;finish()
prend soin de cela déjà. En outre, cette méthode probaly doit retournerfalse
pour être en mesure de capturer des événements clés ailleurs&& event.getAction() == KeyEvent.ACTION_UP
à la réponse. Sans elle, le bloc de code sera exécuté deux fois. (Touche vers le BAS et la touche vers le HAUT). Dans cet exemple, il n'est pas si important, mais pour d'autres actions que finish(), il pourrait être très important.dialog.dismiss()
obtiendrez une fuite de mémoire.finish()
etdialog.dismiss()
doivent être basculé autour dans le code ci-dessus.false
, l'événement sera attrapé par les Android cadre et il ferme la boîte de dialogue.dialog.dismiss()
sera la cause d'une fuite de mémoire?dialog.dismiss()
avant d'appelerfinish()
va produire une fuite de mémoire.Sonne comme vous voulez définir le OnCancelListener lorsque vous créez la boîte de Dialogue. Il ressemble à ceci:
Vous avez besoin de remplacer
OnCancel
méthode. Cette méthode appelle à l'Arrière de la Touche. Voici le code qui fonctionne parfaitement pour moi.Espère que cela va vous aider, et de l'accepter si c'est utile pour vous.
Merci..
Essayer cette
c'est parce que lorsque votre boîte de Dialogue s'ouvre alors la fenêtre de votre naviguer sur ses porté à la boîte de Dialogue.
Alors maintenant, vous avez à gérer
key
sur votre boîte de Dialogue.key
dans la boîte de Dialogue.Si vous utilisez un DialogFragment, à partir de ce que je peux dire la bonne façon de le faire est de remplacer onCancel()
J'ai remarqué
setOnCancelListener
ne fonctionne pas, etsetOnKeyListener
fonctionne, mais, pour moi, a le plaisir d'effets secondaires qu'il avale toutes les clés si votre boîte de dialogue d'édition de texte.Ce code fonctionne: