Cóż, każdy znacznik w mojej aplikacji będzie reprezentował użytkownika, więc muszę zidentyfikować tego użytkownika po kliknięciu okna informacji, aby uzyskać jego dane z Internetu, i mogę sprawiają, że identyfikuje ich imiona z oczywistych powodów. Czy można dodać dodatkowy atrybut do obiektu znacznika? dzięki!Dodaj identyfikację do znacznika na mapach google maps v2 api dla Androida
Odpowiedz
Można wykonać test HashMap<Marker, User>
ten tutorial: http://bon-app-etit.blogspot.be/2012/12/add-informationobject-to-marker-in.html
To powinno być zaznaczone poprawną odpowiedzią. Działa doskonale Łatwy tutorial do naśladowania – KickingLettuce
Czy można dodać dodatkowy atrybut do obiektu znacznika?
nr Marker
jest final
. Utworzone obiekty Marker
szybko znikają, ponieważ są używane tylko w niektórych usługach IPC do aplikacji usług Google Play. Obiekt Marker
, który otrzymasz w swojej jednostce OnInfoWindowClickListener
, wydaje się być odtworzoną kopią.
Mam podtytuł w polu fragmentu, więc nie jest to opcja.
Pewnie, że tak. Przechowuj podtytuły w innym miejscu i umieść swój klucz w swoim podtytule. Po renderowaniu InfoWindow
ze swojego InfoWindowAdapter
, wciągnij napisy.
Oto nieco prostsze rozwiązanie, jakie realizowane. Wszystko, co robisz, to Utwórz InfoWindowAdapter, który przenosi coś, co chcesz przekazać do okna w jego konstruktorze.
class CustomWindowAdapter implements InfoWindowAdapter{
LayoutInflater mInflater;
private HashMap<Marker, Double> mRatingHash;
public CustomWindowAdapter(LayoutInflater i, HashMap<Marker, Double> h){
mInflater = i;
mRatingHash = h;
}
@Override
public View getInfoContents(Marker marker) {
// Getting view from the layout file
View v = mInflater.inflate(R.layout.custom_info_window, null);
TextView title = (TextView) v.findViewById(R.id.tv_info_window_title);
title.setText(marker.getTitle());
TextView description = (TextView) v.findViewById(R.id.tv_info_window_description);
description.setText(marker.getSnippet());
RatingBar rating = (RatingBar) v.findViewById(R.id.rv_info_window);
Double ratingValue = mRatingHash.get(marker);
rating.setRating(ratingValue.floatValue());
return v;
}
@Override
public View getInfoWindow(Marker marker) {
// TODO Auto-generated method stub
return null;
}
}
Jesteś odpowiedzialny za cokolwiek dane chcesz przejść do okna informacyjnego, ale widać tutaj, że jestem przechodzącej hash ocen. To tylko prototyp i nie jest najlepszym rozwiązaniem, ale powinno się zacząć od każdego.
Uratowałem mój dzień .. dziękuję kolego – Noman
Nie sądzę, że dobrym pomysłem jest utrzymywanie silnych odniesień do znaczników za pomocą mapy. Ponieważ i tak używasz niestandardowego adaptera okna do renderowania zawartości, możesz "nadużyć" fragmentu kodu() lub tytułu() w MarkerOptions, aby przechowywać informacje. Oba są łańcuchami, więc zależą od informacji do przechowywania, zużywałbyś nieco więcej pamięci, z drugiej strony byłbyś bezpieczny przed wyciekami pamięci poprzez utrzymywanie silnych odniesień do znaczników.
również można pogodzić z tym, w jaki sposób Mapy Google zarządzają jego trwałością podczas postojów i wznawiania.
Używam dodatkowej klasy do powiązania niektórych informacji i funkcji z każdym znacznikiem. Nie sądzę, że jest to najlepsze podejście, ale jest to opcja. Zwłaszcza jeśli chcesz mieć więcej niż tylko informacje związane z każdym znacznikiem mapy. Oto podstawowa struktura, której używam do tego.
// Make an array list of for all of your things
ArrayList<Thing> things;
class Thing {
long thing_key;
String thing_string;
int thingRadius;
Double coord_long;
Double coord_lat;
Marker marker;
}
// Then to use this to start your list.
things = new ArrayList<>();
// Create the thing object and save all the data
thing = new Thing();
thing.marker = thingMarker;
thing.thing_key = thing_key;
thing.thing_string = thing_string;
thing.radius = Integer.getInteger(thingRadius.getText().toString());
// Save the thing to the thing ArrayList
things.add(thing);
- 1. Dostosowywanie klikalnego obszaru na markerze w Mapach Google v2 dla Androida
- 2. Google Maps Android API v2, niewłaściwy tytuł/fragment znacznika
- 3. Zmień rozmiar znacznika w Google Maps API v2
- 4. Google maps api v2 powiększanie w pobliżu znacznika
- 5. Android Google Maps API: ukryj fragment znacznika
- 6. Czy Google Maps Android API v2 jest bezpłatny?
- 7. Google Maps Android API V2 nie wyświetla map na emulatorze
- 8. Map Markers z tekstem w mapach Google Android API v2
- 9. Google Android mapy api v2 Pokaż tytuł znacznika Zawsze
- 10. Google Maps API v2: jak unieruchomić znaczniki?
- 11. Open Street Maps z Androidem Google Maps Api v2
- 12. ActionBarSherlock + Google Maps API v2 Duplikat Id
- 13. google maps API dla C#
- 14. Odśwież/przeładuj mapy: Google maps API V2
- 15. Google Maps Android V2 i Direction API
- 16. Android Google Maps API v2 wyświetlacz trasa
- 17. Ukryj okno informacyjne markerów w Androidzie Google Maps API v2
- 18. Google Maps API v2 szary ekran
- 19. Google Maps V2 pokazuje pusty ekran na Androida 2.2
- 20. Uzyskiwanie współrzędnych znacznika w Google Maps API
- 21. Importowanie pliku KML w Maps API V2
- 22. Minimalny poziom Androida API do uruchamiania Google Maps Android API v2
- 23. Usuwanie znacznika w Google Maps API v3
- 24. Konwertowanie rysowanego na bitmapę w celu zmiany koloru znacznika w Google Maps Android API v2
- 25. Jak uzyskać aktualną lokalizację w Google Maps API V2
- 26. Wiele znaczników z tekstem na Androidzie Google Maps API v2
- 27. Jak uzyskać klucz do wydania Google Maps API v2
- 28. Jak poprawić płynne przesuwanie znacznika w google maps v2?
- 29. Ustaw szerokość niestandardowego okna InfoWindow w Mapach Google api v2
- 30. Google maps nie v2 wyświetlane
w jaki sposób dodano znaczniki? jako nakładka? –
Możesz użyć pola snippet klasy Marker. –
Mam podtytuł w polu snippet, więc nie jest to opcja. Co masz na myśli jako nakładkę? Dodaję je z map.addMarker (... – vdrg