Android动态更改标记标题

问题描述:

我的目标是更改按钮单击时的标记标题。问题在于我无法获取标记并将其标题设置为onCreate(),因为它已在onMapReady()中初始化。我有以下代码:Android动态更改标记标题

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

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

只需保存你的标记比如在你的类,而不是将其保存在您的onMapReady范围:

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

先生,你是天才要比! – TeodorKolev