函数的类型不兼容

函数的类型不兼容

我试图将我的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/

10-10 17:13