Placing ItemizedOverlay on android map from another android class
===

I have a custom titlebar that has an ImageButton,

and its java class:

    public class MyTitleBar extends RelativeLayout{
	
	private Context context;

	
	public MyTitleBar(Context context, AttributeSet attrs) {
		super(context, attrs);
		this.context = context;
	}
		
	@Override
	protected void onFinishInflate() {
		
		super.onFinishInflate();

		initViews();
	}
	
	// set up all the buttons  & clicks
	private void initViews() {
		
		final ImageButton listImgBtn = (ImageButton) findViewById(R.id.more);
		final CharSequence [] listItems = {"Elderly","Events"};
		
		listImgBtn.setOnClickListener(new  View.OnClickListener() {
			@Override
			public void onClick(View v) {
				if(context instanceof UserHome)
				{
			    	AlertDialog.Builder builder = new AlertDialog.Builder(context);
			    	builder.setTitle("List");
			    	builder.setItems(listItems, new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int item) {
						// TODO Auto-generated method stub
						if(item == 0)
						{
							//show location of elderly
                                                        
						}
						else if(item == 1)
						{
							//show location of events
						}
					}
				});
			    AlertDialog alert = builder.create();
			    alert.show();
			  }
			}
		});
	
The xml which uses the titlebar:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <include 
    android:id="@+id/action_bar"
    layout="@layout/maptitlebar"
    />

    <com.google.android.maps.MapView
	  xmlns:android="http://schemas.android.com/apk/res/android"
	  android:id="@+id/map_view"
	  android:layout_width="fill_parent"
	  android:layout_height="fill_parent"
	  android:clickable="true"
	  android:enabled="true"
	  android:apiKey="0cs8d5rRXpn26OqE2to9HCc9v8bMAwW2InQFdlw" />

    </LinearLayout>

java class:

    public class UserHome extends MapActivity{
	public MapView mapView;
	private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 100; 		//1 meter
	private static final long MINIMUM_TIME_BETWEEN_UPDATES = 900000; 		//10 secs
	protected LocationManager locationManager;
	private final String coordinates [] = {"1.3667","103.7500"}; 			//coordinates of singapore
	List<Overlay> mapOverlays;
	Drawable drawable;
    boolean gps_enabled=false;
    boolean network_enabled=false;
	
	@Override
	protected void onCreate(Bundle arg0) {
		// TODO Auto-generated method stub		
		super.onCreate(arg0);
		setContentView(R.layout.userhome);
		
		mapView = (MapView)findViewById(R.id.map_view);
		mapView.setBuiltInZoomControls(true);
		
		
		double lat = Double.parseDouble(coordinates[0]);
		double lng = Double.parseDouble(coordinates[1]);

		GeoPoint p = new GeoPoint((int)(lat * 1E6),(int)(lng * 1E6));
		
		MapController mapController = mapView.getController();
		
		mapController.animateTo(p);
		mapController.setZoom(11);
		
	    mapOverlays = mapView.getOverlays();
		drawable = this.getResources().getDrawable(R.drawable.green_pin);

		locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
		
		try{
			gps_enabled=locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
		}catch(Exception e){}
		
		try{
			network_enabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
		}
		catch(Exception e)
		{
		}
		
	     if(!gps_enabled && !network_enabled)
	            Toast.makeText(UserHome.this, "No gps provider enabled", Toast.LENGTH_LONG).show();
		
	    if(gps_enabled)
	    {
	    	locationManager.requestLocationUpdates(
	                LocationManager.GPS_PROVIDER, 
	                MINIMUM_TIME_BETWEEN_UPDATES, 
	                MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,
	                new MyLocationListener()
	        );
	    }
	    else if(network_enabled)
	    {
	    	locationManager.requestLocationUpdates(
	                LocationManager.NETWORK_PROVIDER, 
	                MINIMUM_TIME_BETWEEN_UPDATES, 
	                MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,
	                new MyLocationListener()
	        );

	    }
		
			    
	    CurrentLocation();
	}

	 protected void CurrentLocation() {
		 
	        Location location=null;
	        if(gps_enabled)
	        	location= locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
	        if(network_enabled)
	        	location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
	        
	        if (location != null) {
	        	double lat = location.getLatitude();
	        	double lng = location.getLongitude();
	    		
	            Address returnedAddress =  null;
	    	    Geocoder geocoder = new Geocoder(UserHome.this, Locale.ENGLISH);
	    	    OverlayItem overlayitem=null;
	    	    try {
	    	    	 List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
	    	 
	    	    	 if(addresses != null) {
	    	    		 returnedAddress = addresses.get(0);
	    	    		 StringBuilder strReturnedAddress = new StringBuilder("Address:\n");
	    	    		 for(int i=0; i<returnedAddress.getMaxAddressLineIndex(); i++) {
	    	    			 strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n");
	    	    		 }
	    		    		GeoPoint point = new GeoPoint((int)(lat * 1E6),(int)(lng * 1E6));
	    		    		overlayitem = new OverlayItem(point, "My Location",strReturnedAddress.toString());

	    	    	 }
	    	    	 else{
	    	    		Toast.makeText(UserHome.this, "No address retrieved.", 10000).show();
	    	    	 }
	    	     } catch (IOException e) {
	    	    	 // TODO Auto-generated catch block
	    	    	 e.printStackTrace();
	    	     }
	    	    
	    	    //creates a map pin on specified location
	    		CustomItemizedOverlay itemizedOverlay = new CustomItemizedOverlay(drawable,UserHome.this);
	    		   	

	    		itemizedOverlay.addOverlay(overlayitem);
	    		mapOverlays.add(itemizedOverlay);
    //	    		}
	        }
	        else
	        	Toast.makeText(UserHome.this, "Last known location not available", Toast.LENGTH_SHORT).show();
	      
	    }   

	    private class MyLocationListener implements LocationListener {

	        public void onLocationChanged(Location location) {
	        	Toast.makeText(UserHome.this, "onLocationChanged", Toast.LENGTH_LONG).show();
	            if (location != null) {
		        	double lat = location.getLatitude();
		        	double lng = location.getLongitude();
		        	 String message = String.format(
			                    "New Location \n Longitude: %1$s \n Latitude: %2$s",
			                    location.getLongitude(), location.getLatitude()
			            );
			            Toast.makeText(UserHome.this, message, Toast.LENGTH_LONG).show();
		
		        }
	        }

	        public void onStatusChanged(String s, int i, Bundle b) {
	            Toast.makeText(UserHome.this, "Provider status changed",
	                    Toast.LENGTH_LONG).show();
	        }

	        public void onProviderDisabled(String s) {
	            Toast.makeText(UserHome.this,
	                    "Provider disabled by the user. GPS turned off",
	                    Toast.LENGTH_LONG).show();
	        }

	        public void onProviderEnabled(String s) {
	            Toast.makeText(UserHome.this,
	                    "Provider enabled by the user. GPS turned on",
	                    Toast.LENGTH_LONG).show();
	        }

	    }
	    

	

	@Override
	protected boolean isRouteDisplayed() {
		// TODO Auto-generated method stub
		return false;
	}
	
   }


The classes above work perfectly fine. I want to be able to show location(place itemizedOverlay) on the map when list item is selected from dialog box(see MyTitleBar) that is in the same context as the titlebar. How can I do this?