2011-05-23 2 views
0

J'ai travaillé sur un projet pour créer une carte (à l'aide de l'API googles) dans laquelle l'utilisateur peut appuyer de manière prolongée pour placer des superpositions personnalisées. Jusqu'à présent, j'ai été en mesure de permettre à l'utilisateur de placer une superposition, mais quand vous allez placer la seconde, le programme se bloque. Je suppose que c'est parce que la méthode tente de réutiliser le même nom de variable? Voici le segment de code que j'utilise, toute aide sur la façon d'y parvenir serait grandement appréciée.Positionnement de plusieurs superpositions en tant qu'utilisateur

@Override 
public void onLongPressFinished(MotionEvent e, ManagedOverlay overlay, GeoPoint point, ManagedOverlayItem item) {     
    if (item != null) 
     Toast.makeText(getApplicationContext(), "You selected..." + item.getTitle() + "!", Toast.LENGTH_LONG).show(); 

     ManagedOverlay managedOverlay = overlayManager.createOverlay("listenerOverlay", getResources().getDrawable(R.drawable.tankicon)); 

     managedOverlay.createItem(point, "text"); 

     overlays.add(managedOverlay); 
     overlayManager.populate(); 
    } 
} 
+0

Veuillez marquer avec la langue –

Répondre

0

Pour résoudre le problème, j'ai simplement utilisé la méthode onDoubleTap au lieu de la fonction longPress. Le longPress s'est avéré être trop problématique car il pourrait être mal interprété, et parfois ne fonctionnait pas.

La majeure partie du code est toujours la même.

@Override 
public boolean onDoubleTap(MotionEvent e, ManagedOverlay overlay, GeoPoint point, ManagedOverlayItem item) { 
    ManagedOverlay managedOverlay = overlayManager.createOverlay("Location", getResources().getDrawable(R.drawable.icon)); 

    managedOverlay.createItem(point, "place"); 
    overlays.add(managedOverlay); 
    Toast.makeText(getApplicationContext(), "You selected " + managedOverlay.getName() + " !", Toast.LENGTH_LONG).show(); 
    overlayManager.populate(); 
Questions connexes