I'm trying to create a map application that first allows a user to tap on the GoogleMaps screen, and then marking that spot with an ItemizedOverlay object, so I use this method:

@Override
public boolean onTap(GeoPoint p, MapView mapView) {

blah blah

}

However, the result of this method is that on the first user tap, it then generates a bunch of other ItemizedOverlay objects on the map. However, I now want those new ItemizedOverlay objects to have a different onTap method, so in particular, I want to be able to use this version:

@Override
protected boolean onTap(int index) {

when you click on the new ItemizedOverlay objects, something else happens

}

So right now I have both methods in my class. I figure that when the user first taps the screen, the first onTap method is called, and a whole bunch of new ItemizedOverlay objects are created and then added to the map. And when a user then clicks on one of these new ItemizedOverlay objects, then the second onTap method should be called. However, this doesn't seem to be the case, since right now, when I click on those objects, nothing is happening.

But there's still one thing though, is there anyway that I can still access the index of the ItemizedOverlay object that was tapped, since it's not being passed as an argument? Because I want a slightly different action to occur depending on which ItemizedOverlay object was tapped.

...whenever the tap is made over an ItemizedOverlay. Just perform the actions associated to an ItemizedOverlay in the second overrided method and the rest of the actions associated to a tap on a clean region of the map in the corresponding part of the if-else clause of the first method.