当我使用 Retrofit 从服务器调用 lon,lat 时,数据就在这里;
双经度,纬度;
NetworkEngine.getInstance().getResDetail(id, new Callback<Restaurant>() {
@Override
public void success(Restaurant restaurant, Response response) {
lon = restaurant.getLon(); // Double
lat = restaurant.getLat(); // Double
Log.i("lon_", String.valueOf(restaurant.getLon())); // lon_: -128.861048
Log.i("lat_", String.valueOf(restaurant.getLat())); // lat_: 51.09783
}
但是@onMapReady lon,lat 为空。为什么?
@Override
public void onMapReady(GoogleMap googleMap) {
Log.i("lonn_", String.valueOf(lon)); // null
Log.i("latt_", String.valueOf(lat)); // null
map = googleMap;
LatLng location = new LatLng(lat, lon);
}
最佳答案
您的 onMapReady()
在 Retrofit 的 API 调用之前被调用。
因此,在 Retrofit 的 API 调用的 success()
方法中初始化您的 mapFragment.getMapAsync(this);
。
关于android - 经纬度为空@onMapReady,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43774674/