IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

quitte application KeyEvent.KEYCODE_BACK


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut quitte application KeyEvent.KEYCODE_BACK
    Bonjour,

    Je souhaiterais que dès l'appui sur le bouton Back, cela quitte mon application.

    Le problème c'est dès le démarrage cela affiche une AlertDialog, donc il faut 2 appuis pour quitter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) 
        {
     
            if (keyCode == KeyEvent.KEYCODE_BACK) {
            	finish();
            	return true;
            }
    		return false;
     
         }

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Tu peux également implémenter cette méthode dans ton AlertDialog qui elle appellera une fonction de ton Activity qui lui demandera de se fermer.

    http://developer.android.com/referen...view.KeyEvent)

    Mais bon tu es sur que tu veux fermer ton application à partir d'un retour sur ton alertDialog ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut
    Je ne vois pas comment l'implémenter.

  4. #4
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Ben comme tu l'as fait sous l'acitivity

    Soit tu surcharges ta classe AlertDialog

    Soit tu passes pas onKeyListener

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    AlertDialog alert = new AlertDialog.Builder(this).create();
    		alert.setOnKeyListener(new OnKeyListener() {
     
    			@Override
    			public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
    				// TODO Auto-generated method stub
    				return false;
    			}
    		});

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut
    J'ai fait ceci, il rentre 2 fois dans le if, sinon il quitte bien l'application mais donne des erreurs dans le logcat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    	alert.create();
    		alert.setOnKeyListener(new OnKeyListener() {
     
    			@Override
    			public boolean onKey(DialogInterface dialog, int keyCode,
    					KeyEvent event) {
    				if (keyCode == KeyEvent.KEYCODE_BACK) {
    					Log.v("appui sur Back", "BACK");
     
    					finish();
    					return true;
    				}
    				return false;
    			}
    		});
    		alert.show();


    06-22 17:35:21.789: ERROR/WindowManager(21435): Activity com.monapplication has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40522910 that was originally added here

    06-22 17:35:21.789: ERROR/WindowManager(21435): android.view.WindowLeaked: Activity com.monapplication has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40522910 that was originally added here

    06-22 17:35:21.789: ERROR/WindowManager(21435): at com.monapplication.MaClasse.methode(MaClasse.java:245)
    La ligne 245 correspond à l'appel à show()

  6. #6
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Essaye de faire ce que je t'ai signalé plutôt fait un dismiss(); sur l'alerte puis ferme ton application , je pense que cela est la bonne méthode . car comme tu retourne true tu consumes ton KEY_BACK ce qui fait que ton alerte ne se ferme pas ^^

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Il rentre une fois en down et une fois en up. Si tu veux qu'il ne rentre qu'une seule fois utilises onKeyDown ou onKeyUp ou encore tu peux faire un test (dans ta méthode onKey) sur ton attribut event pour savoir s'il est en down ou upn

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire toujours visible même si on quitte l'application
    Par sobjp2025 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 11/12/2009, 19h19
  2. Réponses: 32
    Dernier message: 24/11/2009, 21h57
  3. Réponses: 1
    Dernier message: 10/09/2008, 09h23
  4. [VB.net 2005] Application se quitte toute seule
    Par PoZZyX dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/05/2006, 10h13
  5. Réponses: 1
    Dernier message: 16/05/2004, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo