固定されていない量のマーカーをマップに動的に追加しています。各マーカーは、POCO クラスの 1 つのインスタンスに関連付けられています。
ユーザーがマーカーの 1 つをクリックすると、残りのデータがカスタム InfoWindow 内に表示されるように、それらをリンクする必要があります。
何を指示してるんですか?
PS: ユーザーがマップをパンまたはズームするたびに新しいマーカーを追加しますが、アプリのオーバーロードが心配です。目に見えないマーカーは処分されていますか?
固定されていない量のマーカーをマップに動的に追加しています。各マーカーは、POCO クラスの 1 つのインスタンスに関連付けられています。
ユーザーがマーカーの 1 つをクリックすると、残りのデータがカスタム InfoWindow 内に表示されるように、それらをリンクする必要があります。
何を指示してるんですか?
PS: ユーザーがマップをパンまたはズームするたびに新しいマーカーを追加しますが、アプリのオーバーロードが心配です。目に見えないマーカーは処分されていますか?
HashMap などを使用することをお勧めします。オブジェクトのリストを反復処理してそれらのマーカーを作成するときに、オブジェクトの ID をキーとして、マーカーを値として使用して、マーカーもリストに追加します。
private HashMap<Integer, Marker> markerMap = new HashMap<Integer, Marker>();
...
for(MarkerObject obj : this.markerObjects)
{
//If the marker isn't already being displayed
if(!markerMap.containsKey(obj.getId()))
{
//Add the Marker to the Map and keep track of it
this.markerMap.put(obj.getId(), this.mMap.addMarker(getMarkerForObject(obj)));
}
}
次に、OnInfoWindowClickListener を使用して、マップ内のタップされたマーカーのオブジェクト ID を見つけ、対応するデータで何かを行うことができます (詳細を含む新しいアクティビティを開くなど)。