1

私は Android で GoogleMap V2 に取り組んでいます。マップ上にいくつかのマーカーがあり、InfoWindow を開いているマーカーをクリックします。私の情報ウィンドウには、4 つのテキストビューと 2 つのボタンがあります。これら 2 つのボタンをクリックして、いくつかの異なるアクションを実行したいと思います。私の場合、ボタン 1 は方向を取得するためのもので、ボタン 2 は電話をかけるためのものです。どうすればいいのかわからないので、この問題の解決策を見つけるのを手伝ってください。理解を深めるために、情報ウィンドウの画像を添付しました。以下は、インテントを起動しようとしたコードです。

phoneBtn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent callIntent = new Intent(Intent.ACTION_CALL);
                    callIntent.setData(Uri.parse("tel:"
                            + phoneText.getText().toString()));
                    System.out.println("Clicking");
                    activity.startActivity(callIntent);
                }
            }); 

ここに画像の説明を入力

4

1 に答える 1

4

ドキュメントからの引用

情報ウィンドウは、タッチ イベントやジェスチャ イベントなど、通常のビューに典型的な対話性を考慮しません。ただし、以下で説明するように、情報ウィンドウ全体で一般的なクリック イベントを聞くことができます。

情報ウィンドウはライブ ビューではなく、ビューはマップ上に画像としてレンダリングされます。その結果、ビューに設定したリスナーは無視され、ビューのさまざまな部分のクリック イベントを区別できなくなります。ボタン、チェックボックス、テキスト入力などのインタラクティブなコンポーネントをカスタム情報ウィンドウ内に配置しないことをお勧めします。

OnInfoWindowClickListener を使用して、情報ウィンドウのクリック イベントをリッスンできます。このリスナーをマップに設定するには、GoogleMap.setOnInfoWindowClickListener(OnInfoWindowClickListener) を呼び出します。ユーザーが情報ウィンドウをクリックすると、onInfoWindowClick(Marker) が呼び出され、情報ウィンドウがデフォルトの強調表示色 (Ice Cream Sandwich 以降を実行しているデバイスではホロ ブルー、以前のバージョンの Android ではオレンジ) で強調表示されます。

https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener

于 2013-05-19T06:43:57.743 に答える