1

Markers表示するさまざまな情報に基づいて、さまざまな情報がありcustom infowindowます。そのために、情報ウィンドウのコンテンツごとに異なるクラスを使用しました。

地図で見ると違いMarkersます。しかし、それらをタップすると、最後に作成されたマーカーの情報のみが表示されます。基本的に情報ウィンドウの内容は同じです。また、タップすると、関連する情報ウィンドウが呼び出されず、最後に作成された情報ウィンドウが呼び出されることにも注意しました getInfoContents(Marker arg0)getInfoContents(Marker arg0)しかし、最後に追加されたマーカーの中に正しいマーカーを受け取ります。

マップ内のすべてのマーカーに対して 1 つの情報ウィンドウの実装のみを使用できますか? マーカーの識別に基づいて、さまざまなコンテンツを実装する必要がありますか?

マーカー タイプ 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()

独自の実装を呼び出して、異なる情報を持つ 2 つのマーカーを作成し、それをマップに表示します。

唯一の問題は、両方が最後のマーカーの情報である同じ情報を表示することです。

4

1 に答える 1

1

セッター (およびセッターGoogleMap.setInfoWindowAdapterのように見える) は、以前にあったものを置き換えます。

両方のクラスを呼び出すとonTap、最後のクラスだけがInfoWindowAdapter生き残ります。

代わりに、1 つだけを設定し、パラメーター ( )に基づいて情報ウィンドウを表示する必要があるものInfoWindowAdapterを決定する必要があります。MarkergetInfoContentsMarker arg0

于 2013-11-04T08:53:30.423 に答える