2016-02-04 2 views
17

Я пытаюсь установить onInfoWindowClickListener для каждого маркера, который попал в соответствующий API в соответствии с POJO id. Вот что я нашел для установки события onInfoWindowClick.Как установить тег на маркер карты Google в Android?

googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() { 

     @Override 
     public void onInfoWindowClick(Marker marker) { 
      // TODO Auto-generated method stub 

     } 
    }); 

Но мне нужно, чтобы установить связанные Pojo иды как метки для связанных маркеров, прежде чем я googleMap.addMarker(marker). Но нет такой вещи, как marker.setTag(). Как я могу поместить свой ID без установки тега?

+1

Использовать 'HashMap' и хранить' marker Id' и 'Pojo Id' –

+0

как получить идентификатор маркера? –

+0

нет маркер.setID (""), marker.getID(), тоже ..: 3 –

ответ

5

У меня есть один способ. Просто создайте HashMap с обоими ваш главный Marker и еще один с POJO Class и получить обратно ваш POJO Class на основе Особенное Marker нажал на getInfoContents(.....)

46

Теперь Вы можете сделать как этот

Update ваш Google версии игры службы для

com.google.android.gms:play-services:9.4.0 

Marker marker=mMap.addmarker(new MarkerOptions(LatLang)); 
// set object as tag 
marker.setTag(your object) 

// to retrieve the marker 
marker.getTag();// Type cast to your object type; 
+4

Это ценная информация. Спасибо, кстати. –

+2

Обновление 'Google Play Services' сделало это для меня. Однако у меня была ошибка после изменения версии до 9.4.0 с помощью 'gradle' sync. Мне пришлось закрыть «Android Studio», открыть «Менеджер SDK», «Обновить Google репозиторий». После этого сработала синхронизация «gradle». –

+0

Это отличный ответ. Спасибо. – Neela

Смежные вопросы