I'm doing a project with Google Maps for Android. I've created a MapActivity to load some places I've saved on the server. So I have this class
public class PlaceItemizedOverlay extends ItemizedOverlay<OverlayItem> {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
Context mContext = null;
MapActivity mapAct = null;
public PlaceItemizedOverlay(Drawable defaultMarker, MapActivity map) {
super(boundCenterBottom(defaultMarker));
this.macAct = map;
}
public PlaceItemizedOverlay(Drawable defaultMarker, Context context) {
super(boundCenterBottom(defaultMarker));
mContext = context;
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
@Override
public int size() {
return mOverlays.size();
}
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
this.mapAct.finish();
return true;
}
Well, when I click at a saved place, the program breaks.
I'm creating the object on the mapActivity:
PlaceItemzedOverlay itemizedoverlay = new PlaceItemizedOverlay(drawable, this);
Can you help me please?
Many Thanks!
the problem is here //part of your code
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();//here you show a alert dialog on current activity
//this.mapAct.finish();//and here you finish current activity
return true;
}
at this situation application crashes.. and use
finish();
for your
this.mapAct.finish();