How can i access all marker on my GoogleMap-Object (android maps v2) and set them (in)visible?
android, android-maps-v2, google-maps-markers
Solution
i figured out an answer that also regards my customerList having customers without coordinates --> (0,0;0,0). inspired by this blog.
initialize ArrayList:
private ArrayList<Marker> mMarkerArray = new ArrayList<Marker>();
add marker to my map and to the mMarkerArray:
for (int i = 0; i < MainActivity.customers.size(); i++) {
Customer customer = MainActivity.customers.get(i);
if (customer.getLon() != 0.0) {
if (!customer.isProspect()) {
Data mData= new Data(customer.getLat(),customer.getLon(),customer.getName(),
customer.getOrt());
LatLng location = new LatLng(mData.lat, mData.lng);
Marker marker = mMap.addMarker(new MarkerOptions().position(location)
.title(mData.title)
.snippet(mData.snippet));
mMarkerArray.add(marker);
}}}
set all markers not-visible
for (Marker marker : mMarkerArray) {
marker.setVisible(false);
//marker.remove(); <-- works too!
}
Problem
i am currently trying to implement an ActionBar-Button that on usage sets all my markers on my GoogleMap-object visible or invisible. My problem is that i don't know how i can get a reference to all my markers once they have been created and are shown on my map. Im looking for a solution where i stash all my marker-objects into an array, that i can access in other parts of my code aswell. is this approach reasonable? here is what i am thinking of: ``` private Marker[] mMarkerArray = null; for (int i = 0; i < MainActivity.customers.size(); i++) { LatLng location = new LatLng(mData.lat, mData.lng); Marker marker = mMap.addMarker(new MarkerOptions().position(location) .title(mData.title) .snippet(mData.snippet)); mMarkerArray.add(marker); } ``` and set all my markers invisible on within another method: ``` for (int i = 0; i < mMarkerArray.length;; i++) { mMarkerArray[i].setVisible(false); } ``` it refuses to add the markers to a Marker[]-array. how can i achieve it? mMarkerArray.add(marker) doesnt work