Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] erreur dispatchKeyEvent

dispatchKeyEvent n'intercepte pas clicks sur boutons

Sujet résolu
    20 décembre 2021 à 15:52:26

    Bonjour

    Débutant, je suis le cours Développez votre première application Android.

    Au 3ème chapitre, cours 3 (https://openclassrooms.com/fr/courses/4517166-developpez-votre-premiere-application-android/7298677-ameliorez-lexperience-utilisateur ), la fonction dispatchKeyEvent n'intercepte pas l'appui sur un bouton, si je clique très vite, j'arrive à avoir un score de 9 bonnes réponses alors qu'à 3 je devrais retourner sur la page d'accueil → je reste bien sur la question pendant 2'' mais l'appui sur un bouton est toujours actif.

    J'ai pourtant l'impression d'avoir saisi mon code comme dans l'exemple en vidéo

    mon code dans GameActivity.java

    …
    public class GameActivity extends AppCompatActivity  implements View.OnClickListener{
    …
    private boolean mEnableTouchEvents;
    
    
        @Override
        public boolean dispatchKeyEvent(KeyEvent event) {
            return mEnableTouchEvents && super.dispatchKeyEvent(event);
        }
    …
    
        @Override
        public void onClick(View view) {
            // On clique un des boutons
    
            mEnableTouchEvents = false;
    …
    
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
    …
                    mEnableTouchEvents = true;
    
                }
            }, 2000); // LENGTH_SHORT dure 2 secondes
    …


    J'ai modifier dispatchKeyEvent avec

    @Override
        public boolean dispatchKeyEvent(KeyEvent event) {
            String ret = "Autorisation de saisie : " + Boolean.toString(mEnableTouchEvents);
            Toast.makeText(this, ret, Toast.LENGTH_SHORT).show();
            return mEnableTouchEvents && super.dispatchKeyEvent(event);
        }

    Mais le Toast ne s'affiche jamais ce qui tend à prouver que je n'entre jamais dans la fonction

    Si vous avez une idée de mon erreur, Google n'est pas mon ami sur ce coup là.

    PS : après de nouvelles recherche →

    dispatchKeyEvent


    intercepte l'appui sur une touche du clavier pas l'appui sur un bouton dans l'interface donc ce n'est pas la bonne méthode pour bloquer mon écran. Plus qu'à trouver quelle méthode utiliser.

    PS2 : avec

    dispatchTouchEvent

    ça fonctionne beaucoup mieux

    -
    Edité par Bouguin 20 décembre 2021 à 17:43:14

    • Partager sur Facebook
    • Partager sur Twitter

    [Android] erreur dispatchKeyEvent

    × 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