2

我試圖添加一個標記到我的谷歌地圖使用長/緯,我從我的數據庫檢索。但是,我似乎無法得到它在onMapReady之外添加標記。一旦數據可用,將標記添加到Google地圖?

我的地圖片段在我的活動佈局

<fragment android:name="com.google.android.gms.maps.SupportMapFragment" 
         android:id="@+id/map" 
         android:layout_width="match_parent" 
         android:layout_height="400dp"/> 

的OnCreate

mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 

OnMapReady

@Override 
    public void onMapReady(GoogleMap map) { 
     map.addMarker(new MarkerOptions() 
       .position(new LatLng(1, 1)) 
       .title("jjj")); 
    } 

基本上,我需要去,讓我增加一個地圖的引用標記遠離該OnMapReady方法。

回答

2

這是正確的做法,異步加載地圖。如果您確實想要在onMapReady方法之外設置標記,請考慮此類中的新屬性,該屬性將保留對您在onMapReady方法中獲得的GoogleMap對象的引用。但是當你調用這個屬性時請注意,因爲它可能還沒有設置(NullPointerException)!當你不再需要這個屬性時,你也可能想要取消設置屬性,所以你沒有內存泄漏。

... 

private GoogleMap mMyGoogleMap; 

... 

@Override 
public void onMapReady(GoogleMap map) { 
    mMyGoogleMap = map; 
} 
+0

這工作謝謝你! – xiimoss

+0

如果它能幫助你解決你的問題,那麼接受它作爲正確答案是一種很好的姿態。 –

相關問題