2016-07-23 110 views
0

我在Android應用上使用Google地圖。一個gradle這個之前谷歌的新版本播放它與下面的代碼服務來獲得片段:谷歌地圖.getMap()已棄用

GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 

因爲我更新到9.2.1版本,該.getMap()爲紅色(不推薦)。是否有新的做法來聲明片段?

謝謝你的迴應?

回答

4

您應該將getMap()替換爲getMapAsync()。

根據官方文檔,獲取地圖異步需要回調,這是喲做主要谷歌地圖的東西。看看下面的代碼片段。

public class MapPane extends Activity implements OnMapReadyCallback { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.map_activity); 

    MapFragment mapFragment = (MapFragment) getFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
} 

@Override 
public void onMapReady(GoogleMap map) { 
//DO WHATEVER YOU WANT WITH GOOGLEMAP 
map.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
     map.setMyLocationEnabled(true); 
     map.setTrafficEnabled(true); 
     map.setIndoorEnabled(true); 
     map.setBuildingsEnabled(true); 
     map.getUiSettings().setZoomControlsEnabled(true); 
    } 
} 

希望這可以幫助你。

+0

非常感謝。有用! –

1

getMapAsync()看起來很合身。你將不得不調整你的實現。該調用是異步的,你不會立即擁有地圖。另一方面,當你開始使用地圖時,你將不會遇到問題。