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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)