2010-11-04 8 views
2

J'ai utilisé ce didacticiel http://mobiforge.com/developing/story/using-google-maps-android pour afficher la vue Carte et définir l'événement onTouch pour afficher un message toast (latitude/longitude) lorsque je clique sur une zone particulière. Maintenant, mon problème est que le message Toast est affiché au moment où je touche l'écran, même si c'est pour déplacer la carte? Je veux afficher le toast seulement si le point de retouche et le point de retouche sont les mêmes. Comment puis-je l'implémenter?Android: Comment faire fonctionner onTouch comme onClick?

Répondre

1

Vérifiez si le bit de déplacement est situé dans le MotionEvent

if(event.getAction() & MotionEvent.ACTION_MOVE == MotionEvent.ACTION_MOVE) 
+0

Je ne comprends pas. Il montre une erreur. –

+0

Quel genre d'erreur? –

+0

Mais pour une raison inconnue, ça ne marche pas :(J'ai toujours le toast affiché au toucher –

0

Est-ce la bonne façon de procéder? Je suis sûr qu'il y a un meilleur moyen.

if (event.getAction() == 0) {     
    touchX = (int) event.getX(); 
    touchY = (int) event.getY(); 
} 
if(event.getAction() == 1) { 
    if(event.getX() == touchX && event.getY()== touchY){ 
    GeoPoint p = mapView.getProjection().fromPixels((int) event.getX(), (int)event.getY()); 
     Toast.makeText(getBaseContext(), 
     p.getLatitudeE6()/1E6 + "," + 
     p.getLongitudeE6() /1E6 , 
     Toast.LENGTH_SHORT).show(); 
    } 
} 
+0

Non, 'event.getAction() == 0' n'est pas correct. 'event.getAction()' retourne tous les drapeaux. Vous devriez juste vérifier pour un bit. –

0

Cela a fonctionné pour moi, quand je presse vers le bas et faites glisser rien ne se passe, mais si je presse et relâchez-le cela a fonctionné! Tout comme le comportement de OnClickListener.

public boolean onTouch(View v, MotionEvent event) { 
     if (event.getAction() == MotionEvent.ACTION_UP){ 
     // yer Code here ........... 
     } 

     return false; 
    } 
+0

Ça marche pour moi :(Il a tiré quand j'ai relâché mon doigt, même si j'ai fait glisser. –

Questions connexes