2016-04-27 3 views
0

私の目標は、ボタンクリックでマーカーのタイトルを変更することです。問題は、onMapReady()で初期化されているため、マーカーを取得してタイトルをonCreate()に設定できないことです。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(); 
    } 

答えて

1

ちょうどあなたの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

関連する問題