我试图将我的OnMapReadyCallback设置为get map Async参数。但是android告诉我它需要GoogleMap对象,在文档onMapReady()中是无效的。下面的代码
private void initilizeMap() {
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMapAsync(this);
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
}
@Override
public void onMapReady(GoogleMap map) {
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
map.setTrafficEnabled(true);
map.setIndoorEnabled(true);
map.setBuildingsEnabled(true);
map.getUiSettings().setZoomControlsEnabled(true);
}
最佳答案
getMapAsync
不返回GoogleMap
对象(documentation)。您可以像这样初始化googleMap
对象:
private void initilizeMap() {
((MapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
googleMap = map;
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
map.setTrafficEnabled(true);
map.setIndoorEnabled(true);
map.setBuildingsEnabled(true);
map.getUiSettings().setZoomControlsEnabled(true);
}
关于java - onMapReady()函数的类型不兼容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39915308/