我正在尝试为Google地图片段添加标记。
下一个代码用于当用户在电话界面中点击某个项目时,这是在列表视图中。
我想做的就是替换列表fregment并用标记向用户显示该位置的位置。
这是我用过的代码,因为我想替换片段 -
GoogleMapOptions options = new GoogleMapOptions();
options.camera(CameraPosition.fromLatLngZoom(place, 17));
options.mapType(GoogleMap.MAP_TYPE_SATELLITE);
SupportMapFragment mapFrag = SupportMapFragment.newInstance(options);
FragmentManager fm = getSupportFragmentManager();
if (marker != null) {
marker.remove();
}
GoogleMap map = mapFrag.getMap();
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(place);
markerOptions.title(name);
marker = map.addMarker(markerOptions);
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.phone_cont, mapFrag, "map");
Log.d(TAG, "AFTER TWO LINES");
ft.addToBackStack(null);
ft.commit();
但它似乎让应用程序崩溃,任何想法我在这里做错了什么?
答案 0 :(得分:0)
因为你正在做所有这些
GoogleMap map = mapFrag.getMap();
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(place);
markerOptions.title(name);
marker = map.addMarker(markerOptions);
在您创建地图之前,mapFrag.getMap()
为空
您需要在创建片段后创建标记