Android用Googleマップを使ってアプリケーションを作成しています。私は自分の画面上に多くのマーカーを持っており、クリックされるとマーカーごとにカスタマイズ可能なバルーンを準備しています。これは、クリックされたマーカーによって異なる情報があることを意味します。Android用Googleマップv2でどのマーカーがクリックされたかを知るにはどうすればよいですか?
マーカーのビューの内容をsetInfoWindowAdapterで設定してから、getInfoContentsメソッドをオーバーライドします。
問題は次のとおりです。この方法は、情報ウィンドウのコンテンツの一般的な実装ですが、各マーカーには独自の情報が表示されます。だから私が理解する限り、私は何らかの形でgetInfoContents(Markerマーカー)でマーカーをクリックして、データ構造から情報ウィンドウに表示するのに必要な情報をロードする必要があります。質問は次のとおりです:クリックされたマーカー 'マーカー'がどのエンティティを表しているかを特定するにはどうすればよいですか?私は、情報ウィンドウを表示するためにトリガされたgetInfoContents上のオブジェクトMarkerを持つだけで、どのように表示するのが適切な情報であるかを検出できますか?私はmarker.getTitle()を使用して文字列のタイトルを比較していますが、これは私が望ましくない情報ウィンドウにタイトルを表示することを余儀なくされます。 marker.getId()もありますが、このIDはAPIによって生成され、制御できません。
アイデアはありますか?あなたは、あなたがそれを使用することができますし、限り、あなたは、任意のサブビューにgetInfoContents
からView
なくsetText
を返すように、それは、設定されている時にタイトルを表示する義務はありません
@Override
public void onInfoWindowClick(final Marker marker)
{
// TODO Auto-generated method stub
if (marker.getTitle().equalsIgnoreCase("Start")) {
Toast.makeText(showMaps.this, "You have click on start -->",
Toast.LENGTH_LONG).show();
Log.e("marker.getPosition()-->", "" + marker.getPosition());
}
}
.. +1 – Pihu