android - 在谷歌地图片段中添加标记

时间:2013-12-18 15:38:34

标签: android google-maps fragment

我正在尝试为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();

但它似乎让应用程序崩溃,任何想法我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

因为你正在做所有这些

GoogleMap map = mapFrag.getMap();

    MarkerOptions markerOptions = new MarkerOptions();
    markerOptions.position(place);
    markerOptions.title(name);


    marker = map.addMarker(markerOptions);
在您创建地图之前

mapFrag.getMap()为空

您需要在创建片段后创建标记