我在Android应用上使用Google地图。在为新版Google Play服务进行评分之前,它使用以下代码来获取片段:
GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
自从我更新到9.2.1版以后,.getMap()为红色(不建议使用)。是否有新的做法来声明片段?
感谢您的每一个回复?
答案 0 :(得分:4)
你应该用getMapAsync()替换getMap()。
根据官方文档,获取地图异步需要回调,这是主要谷歌地图的东西。看看下面的片段。
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);
}
}
希望这会对你有所帮助。
答案 1 :(得分:1)
getMapAsync()
看起来很合适。您必须调整您的实现。该调用是异步的,您不会立即拥有该映射。另一方面,由于在开始使用地图时未加载地图,因此不会出现问题。