android - 在Android中的recylerview上实现 map 时,Google Map返回空对象引用

标签 android google-maps mvvm android-databinding

我在recylerview适配器上实现google map,但是它返回空对象引用。

尝试在以下位置调用虚拟方法“com.google.android.gms.maps.model.Marker com.google.android.gms.maps.GoogleMap.addMarker(com.google.android.gms.maps.model.MarkerOptions)”空对象引用

public class TripAdapterViewHolder extends RecyclerView.ViewHolder implements OnMapReadyCallback {
        TripAdapterBinding tripAdapterBinding;
        MapView mapView;
        GoogleMap gMap;

        TripAdapterViewHolder(TripAdapterBinding tripAdapterBinding) {
            super(tripAdapterBinding.itemTrip);
            this.tripAdapterBinding = tripAdapterBinding;
            setMap(tripAdapterBinding.map);
        }

        public void setMap(MapView map) {
            mapView = map;
            if (mapView != null)
            {
                mapView.onCreate(null);
                mapView.onResume();
                mapView.getMapAsync(this);
            }
        }

        @Override
        public void onMapReady(GoogleMap googleMap) {
            this.gMap = googleMap;
        }

我调用我的持有人在 map 上显示数据
@Override
    public void onBindViewHolder(@NonNull TripAdapter.TripAdapterViewHolder holder, int position) {

        try {
            GoogleMap thisMap = holder.gMap;

            LatLng startPoint = new LatLng(37.7750, 122.4183);

            thisMap.addMarker(new MarkerOptions()
                    .position(startPoint)
                    .title("")
                    .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));

            thisMap.animateCamera(CameraUpdateFactory.newLatLngZoom(startPoint, 12));



        }catch (Exception e){
            Log.e("MapException "," "+e.getMessage());
        }
        holder.bindTrip(tripLists.get(position));
    }

最佳答案

您应该通过显示路径来使用静态 map 。

Static map image generate
在这里,您将获得 map 图像,可用于显示在回收站 View 适配器中。

关于android - 在Android中的recylerview上实现 map 时,Google Map返回空对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52379780/

相关文章:

Mysql/VB.Net 加载 map 标记彼此不在一定范围内

objective-c - 使用带有 MVVM 模式的 RACCommand,向 ViewModel 发送参数

android - 如何使用 chrome 模拟三星设备上的后退按钮?

Android 如何在 TextView 或任何内容中打印数组

java - 以编程方式启用通知 channel

wpf - 如何以 MVVM 样式进行图像绑定(bind)?

c# - 在 MVVM WPF 中从其内容的 ViewModel 关闭一个窗口?

java - 使用 Android Studio 创建自定义 View

android - Google Maps API key 是否缓存在 Android 上?

java - 如果用户不允许在 Android 中获取 map 精确位置的权限,则添加默认位置