Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不推荐使用Google Maps.getMap()_Java_Android_Gradle_Maps - Fatal编程技术网

Java 不推荐使用Google Maps.getMap()

Java 不推荐使用Google Maps.getMap(),java,android,gradle,maps,Java,Android,Gradle,Maps,我在Android应用程序上使用谷歌地图。在升级新版本的Google Play Services之前,它使用以下代码获取片段: GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 自从我更新到9.2.1版后,.getMap已被弃用。是否有新的实践来声明片段 谢谢您的回复?看起来很合适。不过,您必须调整您的实现。调用是异步的,您不会立即获得映射。另一方面,你

我在Android应用程序上使用谷歌地图。在升级新版本的Google Play Services之前,它使用以下代码获取片段:

GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
自从我更新到9.2.1版后,.getMap已被弃用。是否有新的实践来声明片段


谢谢您的回复?

看起来很合适。不过,您必须调整您的实现。调用是异步的,您不会立即获得映射。另一方面,你不会有问题,因为当你开始使用地图时,地图没有被加载。

看起来很合适。不过,您必须调整您的实现。调用是异步的,您不会立即获得映射。另一方面,您也不会因为开始使用映射时没有加载它而出现问题。

您应该用getMapAsync替换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);
    }
}

希望这对您有所帮助。

您应该用getMapAsync替换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);
    }
}
希望这对你有帮助