0

I am using the google maps api with overlay items and want to be able to get directions when the user clicks these overlays.

I want this linked to the middle button of my dialog:

// Middle button
    dialog.setNeutralButton("Directions",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

                    Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
                            Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
                    intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");

                    startActivity(intent);

                }
            });

I get the following error "The method startActivity(Intent) is undefined for the type new DialogInterface.OnClickListener(){}"

There are several answers to this on here but I cannot get any of them to work. I have tried both creating a constructor and calling getContext().

I am not sure if it is because my class is:

public class ItemizedOverlayLayoutActivity extends ItemizedOverlay {

Any help greatly appreciated.

Thanks

EHarpham
  • 602
  • 1
  • 17
  • 34

1 Answers1

2

In the constructer of your class ItemizedOverlayLayoutActivity add a parameter Context:

private Context context;
public MyItemizedNewOverlay(Drawable defaultMarker, Context context) {
    //...
    this.context = context;
}

just before you create your dialog add:

final Context fcontext = context;

Then in the dialog middle button use:

fcontext.startActivity(intent);

good luck

Luis
  • 11,978
  • 3
  • 27
  • 35