Using original source from
http://developer.android.com/resources/tutorials/views/hello-mapview.html
Part 1 works AOK. Part 2: Adding Overlay Items, Adds the following:
public class HelloItemizedOverlay extends ItemizedOverlay<OverlayItem>
{
private ArrayList<OverlayItem> mOverlays = new
ArrayList<OverlayItem>();
Context mContext;
public HelloItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
// TODO Auto-generated constructor stub
}
NOTE: Polymorphed Method here!
public HelloItemizedOverlay(Drawable defaultMarker, Context context)
{
super(defaultMarker);
mContext = context;
}
public void addOverlay(OverlayItem overlay) { ...CODE Removed for
Brevity!
@Override
protected OverlayItem createItem(int ith) { ...
@Override
public int size() { ...
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
// The following line crashes because mContext is still NULL here!!
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
}
But in HelloGoogleMaps the HelloItemizedOverlay object is created
using the basic constructor as follows:
HelloItemizedOverlay itemizedoverlay = new
HelloItemizedOverlay(drawable);
So the AlertDialog.Builder() is initialised by mContext = NULL;
I tried to use the following line to correct the situation but this
only delay crash until the dialog.show() at the end of onTap()
HelloItemizedOverlay itemizedoverlay = new
HelloItemizedOverlay(drawable, getApplicationContext());
Can someone please advise a valid solution and correct the
HelloGoogleMaps tutorial :o)
Thanks
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en