I have done this way:
Initialize variables:
private GoogleMap mMap;
private HashMap<Marker, Integer> mHashMap = new HashMap<Marker, Integer>();
private ArrayList<MyCustomModelClass> myList = new ArrayList<MyCustomModelClass>();
Add marker on google map using your arraylist:
for (int i = 0; i < myList.size(); i++) {
double latitude = myList.getLatitude();
double longitude = myList.getLongitude();
Marker marker = mMap.addMarker(new MarkerOptions().position(new LatLng(latitude,longitude))).title(myList.getTitle())
.icon(BitmapDescriptorFactory.fromResource(R.drawable.location_icon));
mHashMap.put(marker, i);
}
On marker click listener:
@Override
public boolean onMarkerClick(Marker marker) {
int pos = mHashMap.get(marker);
Log.i("Position of arraylist", pos+"");
}
Hope this will help you.