2

左と右に aActivityを保持する があります。ListFragmentSupportMapFragment

List と Map はどちらも同じデータに基づいています。マップ上のデータの視覚的表現はMarkers.

リスト項目またはマーカーのいずれかをクリックして、対応する項目を他の視覚的表現で取得できるようにしたいと考えています。

フレームワークと私のデータの制限は次のとおりです。

  1. Marker クラスは final であり、Marker の ID には修飾子がありません。これが、可能な限り簡単な方法を使用できない理由です。

  2. 「ビューの寿命を超えてオブジェクト (マーカーなど) を保持しないことが重要です。そうしないと、ビューを解放できないため、メモリ リークが発生します。」( SupportMapFragmentを参照)

  3. マーカーのタイトルは複数回発生する可能性があります。これが、高価な文字列比較が私ができる方法ではない理由です。

誰かがこの問題の有効な解決策を持っているか、正しい方向にナッジを提供できますか?

4

2 に答える 2

3

マーカーのクリックに登録できるようにしたい場合は、InfoWindowAdapter.

マーカーのタイトルとスニペットに一意の情報を提供し、このスタイルでインターフェイスのメソッドを実装できます。

@Override
public View getInfoWindow(Marker marker) {
  // do nothing here in order to obtain the original info window border.
  return null;
}

@Override
public View getInfoContents(Marker marker) {
  // Create your own view here. Obtain the unique information stored
  //  in title / snippet of the current marker.
  return createdView;
}

OnInfoWindowClickListenerこれで、そこに保存されている一意の情報を設定して操作できるようになりました。

于 2013-01-15T15:45:22.047 に答える