18

V2 マップの使用。

マーカーの追加を含め、基本的にすべて機能しています。

ただし、マーカーがタップされたときにアクションを実行する必要があるため、ハンドラーをインストールしました。

thisMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {

    @Override public boolean onMarkerClick(Marker marker) {
        //  Take some action here
        return true;
    }

}
);

唯一の問題はonMarkerClick()、まったく呼び出されないことです。理由がわかりません-マップが最初に作成されたときと、マーカーが配置された後にリスナーを作成しようとしましたが、違いはありません。

?

4

4 に答える 4

11

これは私にとってはうまくいきます:

GoogleMap mMap;
Marker marker_1;

マップを初期化したら、リスナーを追加します。

mMap.setOnMarkerClickListener((OnMarkerClickListener) this);

そして、これを呼び出します

/**
 * handle marker click event
 */    
@Override
public boolean onMarkerClick(Marker marker) {
    // TODO Auto-generated method stub
    if(marker.equals(marker_1)){
        Log.w("Click", "test");
        return true;
    }
        return false;           
}

「true」を返す場合、クリック イベントは適切に処理されています。マーカーをクリックして false を返すと、通常どおり情報ウィンドウがポップアップします。

Android のドキュメントによると、クリックされたマーカーは、リスナーがイベントを消費した場合 (つまり、デフォルトの動作が発生しない場合) に true を返し、それ以外の場合 (つまり、デフォルトの動作が発生する必要がある場合) に false を返します。デフォルトの動作では、カメラがマップに移動し、情報ウィンドウが表示されます。

于 2013-04-07T08:45:51.210 に答える
0

代わりに OnInfoWindowClickListener を使用して動作させることができました。ただし、マーカーのクリックに応答しない理由はわかりません。

于 2013-04-07T08:39:48.510 に答える
0

GoogleMap mMap;

これを使って:

mMap.setOnMarkerClickListener((OnMarkerClickListener) this);

mMap.setOnMarkerClickListener(OnMarkerClickListener); ではありません。

于 2013-11-05T04:20:46.503 に答える