Autore Topic: google maps api v2 - tap on marker  (Letto 845 volte)

Offline gbu123

  • Utente junior
  • **
  • Post: 74
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    windows 7
google maps api v2 - tap on marker
« il: 07 Marzo 2013, 13:18:21 CET »
0
ciao
non riesco a far eseguire una activity quando clicco su uno dei marker visualizzati sulla mappa fragment (google maps api v2) ;
il codice è questo :

Codice: [Seleziona]
   <LinearLayout
        android:id="@+id/mylayout"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="560"  >             
       
    <fragment
    android:id="@+id/mapview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="5dp"
    android:clickable="true"
    android:name="com.google.android.gms.maps.MapFragment"
    />
   
    </LinearLayout>

Codice: [Seleziona]
    @SuppressLint("NewApi")
    public  class ACTIVITY1 extends Activity {
    . . . . . .

    ArrayList<HashMap<String, String>> Tabella ();
    . . . . . .
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mylayout);
               
        mapView = ((MapFragment) getFragmentManager().findFragmentById(R.id.mapview)).getMap();
        . . . .
        showmap(null);
        . . . .
    }


    //prepare markers on map fragment based on Tabella data
    private void showMap(OnMarkerClickListener OnMarkerClickListener) {
                     
        arrM = new ArrayList<String> ();
                       
        mapView.setOnMarkerClickListener ( OnMarkerClickListener );
               
        try {
                       
             for (int i=0 ; i<Tabella.size(); i++) {
                                       
                  HashMap<String, String> a = Tabella.get(i);
                  final String insegna  = a.get("insegna");
                  String lat1  = a.get("latitudine");
                  String longi = a.get("longitudine");
                                                                     
                  if (lat1.equals(""))  lat1 = "0.0";
                  if (longi.equals(""))  longi = "0.0";
                  latitude = Double.parseDouble(lat1);
                  longitude = Double.parseDouble(longi);
                                       
                  cameraPosition = new CameraPosition.Builder()
                                   .target(new LatLng(latitude,longitude))     
                                   .zoom(17)                   // Sets the zoom
                                   .build();                   
                                       
                   marker = mapView.addMarker(new MarkerOptions()
                           .position(new LatLng(latitude, longitude))
                           .snippet("" )
                           .icon(BitmapDescriptorFactory.fromResource(R.drawable.iconpoi))
                           .title(insegna));
                                                   
                   mapView.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
                   marker.showInfoWindow();

                   arrM.add(marker.getId());
                                                                               
                   //mapView.setOnMarkerClickListener ( OnMarkerClickListener );

                }
         } catch (Exception e) {
            e.printStackTrace();
           }
                       
     }

     //called when marker selected
     public void onMarkerClick(Marker marker) {
         . . .
         Intent myIntent = new Intent(ACTIVITY1 .this,Activity2.class);
         . .
         myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
         ACTIVITY1 .this.startActivity(myIntent);
         . .
   
     } 

     }


in pratica se clicco su un marker mi centra la mappa e basta ,
non chiama    public void onMarkerClick(Marker marker) ;

cosa manca ?
grazie

ciao
« Ultima modifica: 07 Marzo 2013, 16:48:06 CET da gbu123 »

Offline free.joverride

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
Re:google maps api v2 - tap on marker
« Risposta #1 il: 22 Ottobre 2013, 16:33:12 CEST »
0
Non hai definito il listener sull'oggetto interessato dentro onCreate.
Codice: [Seleziona]
@Override
 protected void onCreate(Bundle savedInstanceState) {
   ...
   map.setOnMarkerClickListener(this);
   ...
 }

 @Override
 public boolean onMarkerClick(Marker marker) {
   ...
 }