alllllllll 2013-07-24 06:06 采纳率: 0%
浏览 864

给Google地图添加属性

代码:

private GoogleMap mMap;

MapFragment mMapFragment = MapFragment.newInstance();

FragmentTransaction fragmentTransaction = this.getFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.rl_map, mMapFragment);
fragmentTransaction.commit();

mMap = mMapFragment.getMap();

在相对布局中显示地图(R.id.rl_map)。但是我添加标记marder时:

mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Hello world"));

会报空指针异常。

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-09 10:53
    关注

    看起来你是想在 Google 地图上添加一个标记。


    但是在这段代码中,你在 MapFragment 的实例化和添加操作之后立即获取了 GoogleMap 对象。但是,这个对象可能还没有准备好使用,所以在添加标记时就会抛出空指针异常。


    为了解决这个问题,可以在地图准备好后再进行操作。你可以使用地图的 OnMapReadyCallback 接口来解决这个问题,如下所示:

    MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
    mapFragment.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(GoogleMap googleMap) {
            // 地图准备好了,可以在这里进行操作
            googleMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Hello world"));
        }
    });
    

    在这个例子中,你使用了 getMapAsync() 方法来获取 GoogleMap 对象,并传入了一个 OnMapReadyCallback 回调。当地图准备好后,onMapReady() 方法就会被调用,你就可以在这个方法中进行操作了。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料