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

Android Discussion :

Comment empêcher la touche BACK de quitter le programme ?


Sujet :

Android

  1. #1
    Membre habitué Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Points : 197
    Points
    197
    Par défaut Comment empêcher la touche BACK de quitter le programme ?
    Bonjour,

    Je souhaite inhiber la touche BACK (uniquement de mon interface principale et pas des autres layouts) pour empêcher l'utilisateur de sortir du programme par cette touche (j'ai ajouté un choix "QUITTER" dans mon menu pour sortir du programme).

    Comment faire et est-ce une bonne idée ? (si non pourquoi ?)

    Merci

  2. #2
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    J'ai le même problème, par contre je veux stopper le thread et handler quand l'utilisateur clique sur back.

    Pour ton problème:

    Back est par defaut comme tu le decris mais je crois que tu peux implementer l'interface KeyListener et mettre donner une fonction personnalisé à touche BACK

    Comme ça :

    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
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
     
      switch(keyCode){
     
      case KeyEvent.KEYCODE_BACK :// faire rien ;
     
    return true;
      }
      }
     
      return true;
    }
     
    }
    Pour ton problème tu peux

  3. #3
    Membre habitué Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Points : 197
    Points
    197
    Par défaut
    Merci, ça marche mais ça a un effet secondaire :

    je ne peux plus utiliser la touche MENU (dans lequel j'ai ajouté l'option quitter...).

    Il faut probablement effectuer quelque chose dans la procédure onKeyDown, mais je ne sais pas quoi...

  4. #4
    Membre habitué Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Points : 197
    Points
    197
    Par défaut
    Je ne comprends pas trop pourquoi, mais en ajoutant ceci à ton code, ça marche (je peux utiliser la touche MENU) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    case KeyEvent.KEYCODE_MENU :
        return false;

  5. #5
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
    if(keyCode==KeyEvent.KEYCODE_BACK) return true;
     
     return false;
     
    }
    Ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
     
      switch(keyCode){
     
      case KeyEvent.KEYCODE_BACK :// faire rien ;
     
    return true;
      }
     
     
      return false;
    }
    Dans tout ces deux cas tu n'a pas besoin de Menu encore, tu as customisé juste la touche back en retournant par true,
    false veut dire que les touches font leur activité traditionnel, aucune personalisation n'est tenu compte.
    Mettre à true veut dire " ignorer les anciens roles, et les remplacer par ce que je mets.

  6. #6
    Membre habitué Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Points : 197
    Points
    197
    Par défaut
    Ah oui merci, je n'avais pas pensé à faire comme ça... Ça fait gagner un peu de code...

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

Discussions similaires

  1. [AC-2003] Comment empêcher l'utilisation des touches F1 à F16 dans un état
    Par electrosat03 dans le forum IHM
    Réponses: 10
    Dernier message: 07/07/2009, 17h37
  2. Comment empêcher de lancer plusieurs instances d'un programme?
    Par homeostasie dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 28/10/2008, 21h14
  3. Réponses: 9
    Dernier message: 10/08/2006, 17h33
  4. [MSXML] Comment empécher la conversion des entités ?
    Par nima dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/11/2002, 14h14

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