2012-03-17 2 views
2

Salut je veux mettre en œuvre GestureDetector utilisant ServiceonTouchEvent ne peut pas @Override

Cependant, j'ai cette erreur The method onTouchEvent(MotionEvent) of type GestureService must override or implement a supertype method

public class GestureService extends Service implements OnGestureListener { 

private GestureDetector gestureScanner; 

@Override 
public IBinder onBind(Intent intent) { 
    // TODO Auto-generated method stub 
    return null; 
} 
@Override 
public void onCreate() { 
    super.onCreate();  
    Toast.makeText(getBaseContext(),"onCreate", Toast.LENGTH_SHORT).show(); 
    gestureScanner = new GestureDetector(this); 

} 


@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    Toast.makeText(getBaseContext(),"onStartCommand", Toast.LENGTH_SHORT).show(); 
    return START_STICKY; 

} 

public boolean onTouchEvent(MotionEvent me) { 

    return gestureScanner.onTouchEvent(me); 
} 

@Override 
public boolean onDown(MotionEvent e) { 
    // TODO Auto-generated method stub 
    Toast.makeText(getBaseContext(),"onDown", Toast.LENGTH_SHORT).show(); 
    return false; 
} 
@Override 
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
     float velocityY) { 
    // TODO Auto-generated method stub 
    return false; 
} 
@Override 
public void onLongPress(MotionEvent e) { 
    // TODO Auto-generated method stub 

} 
@Override 
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, 
     float distanceY) { 
    // TODO Auto-generated method stub 
    return false; 
} 
@Override 
public void onShowPress(MotionEvent e) { 
    // TODO Auto-generated method stub 

} 
@Override 
public boolean onSingleTapUp(MotionEvent e) { 
    Toast.makeText(getBaseContext(),"onSingleTapUp", Toast.LENGTH_SHORT).show(); 
    // TODO Auto-generated method stub 
    return false; 
} 
} 

Est-il possible de le réparer plutôt que de supprimer le @Override comme je le soupçonne de le retirer est la cause qui fait le GestureDetector ne fonctionne pas.

+1

Pouvez-vous ajouter du code sur la façon dont la classe GestureDetector est déclarée? Qu'est-ce qu'il met en œuvre/étendre? –

+0

@XiaoChuanYu Salut j'ai ajouté dans le code entier .. – star

+0

Pourquoi à la première place essayez-vous d'ajouter des gestes à un service. Le service n'est pas fait pour ça. – Deva

Répondre

0

essayer cette

@Override 
public boolean onTouchEvent(MotionEvent me) { 
    if (gestureScanner.onTouchEvent(me)) 
     return true; 
    else 
     return false; 
} 

J'espère que cela fonctionnera.

+0

salut il a toujours la même erreur .. – star

1

Il n'y a pas d'onTouchEvent dans OnGestureListener qui entraîne votre erreur (il n'y a rien à redéfinir). Que voulez-vous exactement faire avec cet événement? Vous pouvez utiliser onDown et onSingleTapUp pour émuler l'événement. Vous pouvez cependant écouter onTouch() depuis un View, mais je ne vois aucun code concernant une vue de ce que vous avez posté au moins.

+0

je souhaite détecter le mouvement tactile/doigt/geste en réel -temps (ce qui signifie au-dessus de chaque application) est-il possible de le faire en utilisant GestureOverlayView? – star

+0

Je ne pense pas que Android supporte les gestes globaux dont vous parlez en ce moment ... –