3 votes

Quel EVENT LISTENER dois-je utiliser pour mon application Android ?

Dans mon application, lorsqu'un bouton image particulier est cliqué et maintenu enfoncé, je dois pouvoir calculer le temps pendant lequel le bouton image a été maintenu enfoncé. Quelqu'un peut-il m'aider en me donnant des conseils simples ou un exemple de code ? Je suis vraiment bloqué ici. Existe-t-il un écouteur d'événements spécifique pour cette exigence particulière ? J'écris cette application spécifiquement pour les téléphones à écran tactile uniquement.

2voto

Steve Haley Points 26928

Ce que vous voulez utiliser est ceci :

OnTouchListener touchListener = new OnTouchListener(){
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        Log.d(LOG_TAG, "Action is: " + action);

        switch (action){
        case MotionEvent.ACTION_DOWN:
            timeAtDown = SystemClock.elapsedRealtime();
            break;

        case MotionEvent.ACTION_UP:
            long durationOfTouch = SystemClock.elapsedRealtime() - timeAtDown;
            Log.d(LOG_TAG, "Touch event lasted " + durationOfTouch + " milliseconds.");
            break;
        }
        return false;
    }

};

button.setOnTouchListener(touchListener);

timeAtDown est un long défini comme un champ de classe, car il doit persister entre les appels au touchListener. En utilisant cette méthode, vous n'interférez pas non plus avec le fonctionnement normal du bouton ; vous pouvez définir un écouteur de clic qui fonctionnera correctement. Remarque : l'opération de "clic" ne se produit pas tant que l'action de l'événement tactile ne passe pas de DOWN (ou MOVE) à UP.

1voto

Toni Menzel Points 521

Expérimentez avec les callbacks on*** de http://developer.Android.com/reference/Android/view/KeyEvent.Callback.html .

Par exemple Button.onKeyDown, enregistre l'heure actuelle dans une variable et Button.onKeyDown calcule la différence avec la dernière heure enregistrée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X