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

Original source