0

使用的代码是这样的:

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)内的地图,但是当我尝试将标记放在:

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

它给出了空指针异常

4

2 回答 2

2

那是因为GoogleMap尚不存在。commit()安排要创建的地图,但在您尝试调用getMap().

任何一个:

  • 切换到充气包含 的布局MapFragment,您可以getMap()在充气完成后调用,或者

  • 将呼叫延迟getMap()到稍后的某个时间点,或

  • 子类化MapFragment并调用getMap()并在方法中添加您的标记onActivityCreated()(基本上,在onCreateView()完成之后调用的任何内容)

于 2013-07-23T23:04:40.420 回答
0

你应该:

 Googlemap map =((SupportMapFragment)       getSupportFragmentManager().findFragmentById(R.id.map))
                    .getMap();

map.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Hello world"));
于 2013-07-23T23:47:20.830 回答