В вашем CustomItemizedOverlay необходимо переопределить ItemizedOverlay.onTap (int).
У вас будет что-то подобное:
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
// Do something with the item
return true;
}
Когда это действие происходит, если вы хотите создать действие, вам нужно иметь Контекст или уведомить слушателя. С моей точки зрения, второе решение лучше:
public class CustomItemizedOverlay extends ItemizedOverlay {
private MapItemListener mMapItemListener;
...
public void setMapItemListener(MapItemListener mapItemListener) {
this.mMapItemListener = mapItemListener;
}
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
if (mMapItemListener != null){
mMapItemListener.onMapItemTap(item);
}
return true;
}
public interface MapItemListener {
void onMapItemTap(OverlayItem item);
}
}
А в твоей деятельности:
public class MyMapActivity extends MapActivity implements MapItemListener {
protected void myInitMapMethod(){
...
CustomItemizedOverlay itemizedOverlay = new CustomItemizedOverlay(drawable, this);
itemizedOverlay.setMapItemListener(this);
...
}
@Override
public void onMapItemTap(OverlayItem item) {
// Start activity
}
}