2010-10-29 3 views

Répondre

0

Juste une idée:
S'il n'y a pas d'API déjà dans Android pour gérer que vous pourriez essayer de reporter la conclusion sur le simple/double/triple/etc. cliquez en réglant un petit délai d'attente (disons ~ 300ms environ) dans ce gestionnaire de boutons hadrware surchargé et en attendant comptez le nombre d'appels effectués sur ce bouton spécifique, vérifiez-le quand la minuterie se déclenche et que vous l'avez.


Edit:

Voici quelque chose du haut de ma tête. Ajustez-le un peu pour une performance plus optimisée.

private Timer mDoubleClickTimer; 
private boolean possibleDoubleClick = false; 

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event){ 
    if(keyCode==KeyEvent.KEYCODE_MENU){ //or whatever key you want to check for double-clicks 
     if(mDoubleClickTimer!=null) {mDoubleClickTimer.cancel();} 
     if(!possibleDoubleClick){ 
      possibleDoubleClick = true; 
      mDoubleClickTimer = new Timer(); 
      mDoubleClickTimer.schedule(new TimerTask() { 
       @Override 
       public void run() { 
        //single click detected 
        //handle it here 
        possibleDoubleClick = false; 
       } 
      },300); 
     }else{ 
      //double click detected 
      //handle it here 
      possibleDoubleClick = false; 
     } 
//... other key processing if you need it 
return false; 
} 
+0

C'est ce que je pensais aussi ... pourriez-vous écrire un exemple simple? – mlevit

+0

Cet exemple fonctionne pour n'importe quel bouton, sauf le plus important: le bouton Accueil! –

Questions connexes