2016-06-20 12 views
1

私のアプリケーションでは、マップのマーカーに情報ウィンドウがあります(下の画像のように)。Android:インフォメーションウィンドウ入力

example 情報ウィンドウ内にボタンまたはチェックボックスを追加します。

インフォメーションウィンドウ内に入力オブジェクトを追加する方法はありますか?

+0

表情を隠し、同じ[カスタムウィンドウレイアウトマーカー](http://stackoverflow.com/a/15091202/2267302)を実行しようとする – rojiTOCH

答えて

1

情報ウィンドウ内に入力オブジェクトを追加する方法はありますか?

いいえ。情報ウィンドウはビットマップです。それは、レイアウトファイルから作成されたビットマップですが、それでもビットマップです。情報ウィンドウのレイアウトにインタラクティブなウィジェットを配置することはできますが、ユーザーの入力には反応しません。

ユーザーが情報ウィンドウをタップしたときを検出し、インタラクティブなウィジェット(たとえば、ダイアログ)を含むポップアップを表示できます。

+0

は大丈夫非常にありがとうございました多くの素晴らしいアイデア。私はそれを行います:) – Jay

+0

情報ウィンドウにリスナーを追加するにはどうしたらいいですか? – Jay

+0

@Jay:下記のGabrielの答えをご覧ください。 'OnMarkerClickListener'を定義し、' setOnMarkerClickListener() 'を介して' GoogleMap'でそれを登録します。 – CommonsWare

0

通常の情報ウィンドウを隠す必要があります。その後、マーカーをクリックして独自のウィンドウを表示します。おそらく、レイアウトでAlertDialogを表示します。

trueを返すことを忘れないでください。通常の情報ウィンドウに、この記事では、この応答で

GoogleMap.OnMarkerClickListener onMarkerClickListener = new GoogleMap.OnMarkerClickListener(){ 

      @Override 
      public boolean onMarkerClick(Marker marker) { 
       //open your window 

     //For Example 
     final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setMessage("Hey ive done my infowindow").setTitle("My own infowindow"); 
     builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) 
       dialog.dismiss(); 
      } 
     }); 
     AlertDialog dialog = builder.create(); 
     dialog.show(); 

      return true; //RETURNING TRUE going to hide normal infowindow 

     } 
     }; 
     googleMap.setOnMarkerClickListener(onMarkerClickListener);