に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 つのマーカーを作成し、それをマップに表示します。
唯一の問題は、両方が最後のマーカーの情報である同じ情報を表示することです。