2013-12-18 50 views
0

我想添加标记到谷歌地图片段。Android - 添加标记到谷歌地图片段

下一个代码用于当用户在手机界面中时他点击一个项目,这是一个列表视图。

我想要做的就是替换列表细分,并用标记向用户显示地点的位置。

这是代码我都用过,因为当我要更换的片段 -

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

,因为你正在做的这一切

GoogleMap map = mapFrag.getMap(); 

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


    marker = map.addMarker(markerOptions); 

你甚至创建的地图之前,所以mapFrag.getMap()是空

您需要创建标记片段已创建

+0

后,所以我需要做的是为了首先创建片段,并添加标记? – 4this

+0

你需要创建片段,等待它被创建,然后你可以做你想要的地图。总是检查以确保'getMap()'不返回空值,那么该片段还没有被创建 – tyczj

+0

我试图让地图显示,而不是调用一个函数来添加标记 - 但现在有一张地图,但没有标记 – 4this