Domanda

Ho usato questo tutorial http://mobiforge.com/developing/story/using-google-maps-android Per visualizzare la visualizzazione della mappa e impostare l'evento ONTOUCH per visualizzare un messaggio toast (latitudine/longitudine) quando faccio clic su una determinata area. Ora il mio problema è che il messaggio toast viene visualizzato nel momento in cui tocco lo schermo anche se è per spostare la mappa? Voglio visualizzare il toast solo se il punto di tocca e il punto di ritocco sono uguali. Come lo implemento?

È stato utile?

Soluzione

Controlla se il bit di spostamento è impostato in MotionEvent

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

Altri suggerimenti

È questo il modo corretto per farlo? Sono abbastanza sicuro che ci sia un modo migliore.

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

Questo ha funzionato per me, quando premo giù e trascino nulla succede, ma se premo giù e rilascio ha funzionato! Proprio come il comportamento OnClickListener.

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

      return false;
  }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top