Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] évenement bouton physique

Sujet résolu
    3 mars 2012 à 18:21:42

    Bonjour,
    Je cherche à faire une quelconque action lorsque l'utilisateur appui 4 fois sur une touche du clavier par exemple la touche triangle pour Xperia play :
    Image utilisateur
    le bouton triangle correspond à 100 j'ai essayé ceci :
    public boolean onKeyDown(final int pKeyCode, final KeyEvent pEvent) {
    else if(pKeyCode == 100 && pEvent.getRepeatCount() == 4)// 4 appui sur triangle
        {   
    
    
         //iCI je fais quelque chose
            return true;
        }
    return super.onKeyDown(pKeyCode, pEvent); }
    

    mais cela ne fonctionne pas j'ai ensuite essayer ceci :
    public boolean onKeyMultiple(int pKeyCode, int count, KeyEvent pEvent)
    {
        if(pKeyCode == 100 && pEvent.getAction() == KeyEvent.ACTION_MULTIPLE)
        {   
             System.out.println(pEvent.getRepeatCount());
    
                mMenu.Combo1(1);
    
            return true;
        }
    
        return super.onKeyMultiple(pKeyCode, count, pEvent);
    }
    

    toujours rien ce que je cherche à reproduire c'est comme lorsque vous faite un combo dans un jeux de combat avec votre manette de xbox ou ps3 vous appuyer rapidement sur le meme bouton plusieur fois pour faire votre Super COmbo et bien je voudrai faire la meme mais apparemment getRepeatCount() n'est pas la solution j'ai testé ce que renvoyait getRepeatCount si on appui une fois cela renvoi 0 si on laisse le doigt sur triangle sa affiche 0,1,2,3,4 jusqu'à ce qu'on lâche le bouton donc getRepeatCount est une sorte de chronomètre ?
    voila merci d'avoir pris le temps de lire
    • Partager sur Facebook
    • Partager sur Twitter
      4 mars 2012 à 3:35:15

      Je pense ( a vérifier ) qu'en fait getRepeatCount marche globalement comme lorsque tu laisse appuyé une touche de ton clavier de pc, ça active une répétition toutes les x milliseconde où tu reste appuyé sur la touche.
      • Partager sur Facebook
      • Partager sur Twitter
      http://tuclictugeek.fr - Avis et Test sur Jeux-vidéo et Mangas
        4 mars 2012 à 10:21:55

        Bonjour,

        Ce n'est sans doute pas la meilleur solution mais une variable locale static ne pourrait pas régler ton affaire ?
        • Partager sur Facebook
        • Partager sur Twitter
        Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
          4 mars 2012 à 17:51:18

          Oui Ten c'est exactement ca.
          Androwiiid je ne vois pas ce que tu veux dire .
          Merci pour vos réponses
          • Partager sur Facebook
          • Partager sur Twitter
            4 mars 2012 à 18:19:39

            En faite, une variable static fonctionne de cette façon :
            public void maMethode() {
                  static int i = 0;
                  i++;
                  System.out.println("Je suis passé "+i+" fois dans cette méthode");
            }
            

            La variable i ne prendra qu'une fois la valeur 0. Quand elle passera une nième fois dans la méthode, il n'assignera pas 0 à i et ne fera que son incrémentation et l'affichage du System.out.println().
            Du coup, il te suffirait de tester si i == 4 pour executer ton code mais il doit y avoir une méthode plus propre sans doute ^^
            • Partager sur Facebook
            • Partager sur Twitter
            Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
              4 mars 2012 à 19:05:16

              Aaaaaaaaaaaaaaaaaaaaaaaah ouuuiii je cherchais justement une manière de stocker une variable pour voir combien de fois je passe dans cette méthode !!! J'avais complètement oublier cette technique mercii bien c'est parfait pour mon programme tu gère fougère =D
              • Partager sur Facebook
              • Partager sur Twitter
                4 mars 2012 à 20:03:19

                Il existe très certainement une façon plus propre, géré par Android, mais ça pourra certainement te dépanner en attendant de trouver mieux.

                Si ça règle ton souci, n'oubli pas d'éditer ton topic pour indiquer que ton problème est résolu :)
                • Partager sur Facebook
                • Partager sur Twitter
                Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
                  6 mars 2012 à 21:03:38

                  Le problème, ici, c'est que si le mec fait Δ Δ Δ ○ Δ, tu vas repérer l'action que tu désirais trouver, alors que normalement ça ne devrait pas être le cas... non ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Small is Beautiful — E.F. Schumacher | Blog (fr)

                  [Android] évenement bouton physique

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown