I am a noob to android and I have a Map Activity that also uses OverlayItems. Within the onButtonTap method of my overlay class, I want to execute startActivity so i can then use intent.ACTION_CALL.
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+MapActivity.phonenumber0));
startActivity(callIntent);
in the code above i am asked to create a method for startActivity(Intent), which I don't understand. and when i try...
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+MapActivity.phonenumber0));
MapActivity.startActivity(callIntent);
It says i cannot make a static reference to a non static reference to a non-static method. And when I try to use the context of the object, which is the button being tapped it won't allow me to do so.
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+MapActivity.phonenumber0));
ContextObj.startActivity(callIntent);
And of course moving this block of code to the main Activity requires a static method which presents its own set of issues.
How can set the appropriate context for startActivity? Any help is greatly appreciated.
Try this before start the activity set this flag :
Hope it will work.
you can create method in your MapActivity class like this to get context...
Edit : Take some static variable like this...
In Activity's onCreate() method assign base context to it...
& return mContext...
& call it in to your non activity class to start activity...
You can pass the context of the activity (Map Activity) to your class and then use it..