2016-06-20 2 views
1

В моем приложении у меня есть информационное окно на маркере на карте, например, на изображении ниже.Android: Info Window input

example Я бы добавил кнопку или флажок в информационном окне.

Есть способ добавить входной объект в информационное окно?

+0

взглянуть на этот ответ в этой должности и попытаться сделать то же самое [пользовательские окна макета маркер] (http://stackoverflow.com/a/15091202/2267302) – rojiTOCH

ответ

1

Есть способ добавить входной объект в информационное окно?

Нет. Информационное окно представляет собой растровое изображение. Это растровое изображение, созданное из файла макета, но оно по-прежнему является растровым изображением. Вы можете поместить интерактивный виджет в макет информационного окна, но он не будет реагировать на ввод пользователя.

Вы можете обнаружить, когда пользователь заходит в информационное окно и отображает всплывающее окно, содержащее интерактивные виджеты (например, диалог).

+0

ок спасибо много, отличная идея. Я сделаю это :) – Jay

+0

Как я могу добавить listener в окне информации? – Jay

+0

@Jay: См. Ответ Габриэля ниже. Вы определяете 'OnMarkerClickListener' и регистрируете его с помощью' GoogleMap' через 'setOnMarkerClickListener()'. – CommonsWare

0

Вам нужно скрыть нормальную инфузию, а затем на маркерном щелчке показать свое окно, возможно, AlertDialog с вашим расположением.

не забудьте вернуть true; чтобы скрыть нормальный InfoWindow

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);