2010-04-21 4 views
0

Je souhaite gérer la touche et appuyer longuement sur la touche pour le code clé KEYCODE_BACK (bouton de retour). quelqu'un peut me suggérer comment faire cela dans Android 1.5 (niveau API 3).Manipulation longue pression de touche dans Android 1.5

Voici le code.

public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 

       if(event.getRepeatCount()==0) { 
        // normal key press 
        //Do something here 
        // But problem is, this code is hitting for long press also, how to avoid this 
       } else { 
        // Long key press 
        //Do something here 
       } 
       // Always consume back key event by returning true 
       //so that default behavior of back is overrided 
       return true; 
      } 
     return super.onKeyDown(keyCode, event); 
    } 

Le problème est que le code pour une pression sur une touche normale est également exécuté sur une pression longue. Je veux éviter cela.

Note: Je ne peux pas utiliser des méthodes comme onKeyLongPress(), startTracking() etc comme ils sont introduits dans le niveau de l'API 5

Répondre

0

L'événement réel du code de répartition ne dispose pas d'un concept de longues presses et tout ce que vous devez faire est chronométré pour eux sur le fil principal de l'application, l'application peut être assez lente pour ne pas mettre à jour dans le délai d'attente de presse longue. C'est parce que, il n'y a pas un réel traitement des événements Keypress présent avec l'androïde. 1.5. Celui-ci a été introduit avec Android 2.0 une véritable API KeyEvent et des fonctions de rappel pour les longues pressions.

Questions connexes