2016-04-27 41 views
0

Mein Ziel ist es, Marker Titel beim Klicken auf die Schaltfläche zu ändern. Das Problem ist, dass ich Marker nicht bekommen und Titel davon in onCreate() setzen kann, weil es in onMapReady() initialisiert wird. Ich habe den folgenden Code:Android Titel ändern Titel dynamisch

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      updateMarkerTexts(marker, "ss", "gg"); 
     } 
    }); 

    return view; 
} 

und

@Override 
public void onMapReady(final GoogleMap googleMap) { 
    mMap = googleMap; 
    enableMyLocation(); 
    onMyLocationButtonClick(); 

    final Marker marker = mMap.addMarker(new MarkerOptions() 
       .position(new LatLng(51.2001, 62.9187)) 
       .title("Some title") 
       .snippet(getResources().getString(R.string.somestr)))); 


    mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() { 
     @Override 
     public View getInfoWindow(Marker arg0) { 
      LayoutInflater inflater = (LayoutInflater)getContext().getSystemService (Context.LAYOUT_INFLATER_SERVICE); 
    //some params 
     } 

     @Override 
     public View getInfoContents(Marker arg0) { 
      return null; 
     } 

     getInfoWindow(marker); 
     marker.showInfoWindow(); 
    } 

Antwort

1

Sie Ihre Marker Instanz in Ihrer Klasse speichern, anstatt es in Ihrem onMapReady Umfang zu sparen:

Marker marker; 

@Override 
public void onMapReady(final GoogleMap googleMap) { 
    ... 
    marker = mMap.addMarker(new MarkerOptions() 
      .position(new LatLng(51.2001, 62.9187)) 
      .title("Some title") 
      .snippet(getResources().getString(R.string.somestr)))); 
+0

Sir, Sie sind genial! – TeodorKolev