Question

J'ai utilisé ce tutoriel http://mobiforge.com/developing/story/ à l'aide-google-maps-android pour afficher Voir la carte et la liste d'événements OnTouch pour afficher un message de pain grillé (latitude / longitude) lorsque je clique sur un domaine particulier. Maintenant, mon problème est que le message Toast est affiché le moment je touche l'écran même si elle est de déplacer la carte? Je veux montrer le toast que si la touche vers le bas et le point haut point de contact sont les mêmes. Comment puis-je mettre cela?

Était-ce utile?

La solution

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

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

Autres conseils

Est-ce la bonne façon de le faire? Je suis assez sûr qu'il ya une meilleure façon.

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();
    }
}

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

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

      return false;
  }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top