Mam ArrayList niestandardowej klasy. Na liście znajduje się około 10 obiektów, z których każdy zawiera szczegóły takie jak tytuł, fragment, latLng. Udało mi się dodać wszystkie 10 do mapy za pomocą moich niestandardowych funkcji klasy, takich jak getTitle, getSnippet, getLatLng itp.Rozróżnianie różnych znaczników w Maps API v2 (unikalne identyfikatory)
Teraz, gdy kliknę w okno informacyjne (znacznika), chcę być w stanie jakoś WIEM, który obiekt mojej niestandardowej klasy, której odpowiada ten znacznik.
Na przykład, jeśli kliknę na rynek McDonald's, chcę wiedzieć, do którego elementu z mojej tablicy ArrayList należy ten znacznik.
Spoglądam na MarkerOptions i tam nie ma niczego, co pomoże mi zidentyfikować odpowiedni obiekt niestandardowy.
Jeśli pytanie jest zbyt skomplikowane, pozwól mi zrobić to proste:
ArrayList<CustomObj> objects = blah
map.addMarker(new MarkerOptions().position(new LatLng(
Double.parseDouble(result.get(i).getCompanyLatLng()
.split(",")[0]), Double.parseDouble(result
.get(i).getCompanyLatLng().split(",")[1])))
.title(result.get(i).getCompanyName())
.snippet(result.get(i).getCompanyType())
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.pin)));
Teraz gdy zostanie kliknięty, idę do następnej strony. Następna strona musi wiedzieć, KTÓRY został kliknięty obiekt, dzięki czemu mogę wysłać inne szczegóły do tej strony (np. Adresy URL obrazów, które należy załadować itp.).
Jak dodać unikalną liczbę całkowitą lub dowolny identyfikator do mojego znacznika?
mMap.setOnMarkerClickListener (nowa OnMarkerClickListener() \t \t \t { \t \t \t \t \t \t @Override \t \t \t \t \t \t public boolean onMarkerClick (Marker arg0) { \t \t \t \t\t \t if (arg0.getTitle() jest równa ("Nazwa markera 1")). \t \t \t \t \t \t Toast.makeText (MainActivity.this, arg0.getTitle(), 1000) .pokaż(); \t \t \t \t \t \t \t return true; \t \t \t \t \t \t} \t \t \t \t \t \t \t}); możesz użyć znacznika słuchacza, aby sprawdzić i użyć tytułu do porównania, aby wiedzieć, który znacznik został kliknięty. – Raghunandan
:) Tytuły nie zawsze są unikalne w moim przypadku i dlatego nie mogą być użyte do tego celu. – Asim
możesz użyć getId() w tym przypadku. – Raghunandan