1

Markers根据他们不同的信息有不同的展示在custom infowindow。为此,我为每个信息窗口内容使用了不同的类。

Markers我可以在我的地图上看到不同的东西。但是我点击它们,只显示最后构建的标记信息。基本上信息窗口的内容是相同的。我还注意到,当我点击时,它不会调用相关的信息窗口,而是调用最后创建的信息窗口 getInfoContents(Marker arg0)getInfoContents(Marker arg0)但是我在最后添加的标记中收到了正确的标记。

对于地图中的所有标记,我们只能有一个信息窗口实现吗?并且基于标记识别我应该实现不同的内容吗?

标记类型 A 实现

 public class MapGoogleOverlayV2 {

    private ViewGroup infoWindow;

    public boolean onTap() {


    infoWindow  = (ViewGroup)((Activity)mContext).getLayoutInflater().inflate(R.layout.info_window_layout, null);


    /*Custom info window implementation is below */
    googleMap.setInfoWindowAdapter(new InfoWindowAdapter() {

        @Override
        public View getInfoWindow(Marker arg0) {

            return null;
        }

        @Override
        public View getInfoContents(Marker arg0) {

            // set title
            ((TextView)infoWindow.findViewById(R.id.title)).setText("Test text");

            // set freeText
            ((TextView)infoWindow.findViewById(R.id.text)).setText(Long.toString("1"));


              return infoWindow;

        }
    });
   }
}

标记 B 在具有不同信息的另一个类中实现。我在打电话onTap()

我通过调用它们自己的实现来创建两个具有不同信息的标记并将其显示在地图中。

唯一的问题是它们都显示相同的信息,即最后一个标记的信息。

4

1 回答 1

1

二传手(GoogleMap.setInfoWindowAdapter似乎是二传手)取代了以前的东西。

如果你同时调用onTap两个类,只有最后一个InfoWindowAdapter存活。

相反,您只需要设置一个InfoWindowAdapterMarker根据getInfoContents参数 ( Marker arg0) 决定需要显示哪个信息窗口。

于 2013-11-04T08:53:30.423 回答