2012-12-21 28 views
2

当标记被拖到某点时,我想让标记的信息窗口显示。 我想让地址出现在里面。 我logcat中给了我正确的地址,以便能正常工作,但信息窗口不显示结束拖动时标记显示信息窗口

这里是我的代码

private void placeMarker() { 
    getMap().addMarker(new MarkerOptions() 
      .position(getMyLocation()) 
      .draggable(true) 
      .snippet("") 
      .title("")); 
    getMap().setOnMarkerDragListener(new OnMarkerDragListener() { 

     public void onMarkerDragStart(Marker arg0) { 
      // TODO Auto-generated method stub 

     } 

     public void onMarkerDragEnd(Marker marker) { 
      latLng = marker.getPosition(); 
      marker.setSnippet("Loading address..."); 
      marker.showInfoWindow(); 

      Geocoder geoCoder = new Geocoder(getActivity(), Locale.getDefault()); 
      try { 
       address = geoCoder.getFromLocation(latLng.latitude, latLng.longitude, 1).get(0); 
       String addressString = address.getAddressLine(0); 
       addressString += "\n"+address.getAddressLine(1); 
       marker.setSnippet(addressString); 
       marker.showInfoWindow(); 

       Log.d("get address pinpoint", "drag end: " + addressString+ " shown:" + marker.isVisible()); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 


     } 

     public void onMarkerDrag(Marker arg0) { 
      // TODO Auto-generated method stub 

     } 
    }); 

} 

回答

1

您需要非空的标题显示默认的信息窗口。

变化marker.setSnippet(addressString);marker.setTitle(addressString);

补充说明:在UI线程从未呼叫阻塞代码。 geoCoder.getFromLocation在内部调用webservice。

0

您可以使用marker.showInfoWindow();