Make graphics clickable instead of create new graphics in map

106 Views Asked by At

So, I have a map with a MapOnTouchListener on it. I have overriden the OnSingleTap method (allPoints is an array where all markers are added for a non related to this question functionality):

@Override
    public boolean onSingleTap(MotionEvent point) {
        Point mapPoint=view.toMapPoint(point.getX(), point.getY());
        new GeocoderAsynckTask(mapPoint,view).execute(mapPoint);
        SpatialReference sp = SpatialReference.create(SpatialReference.WKID_WGS84);
        Point p1Done=(Point) GeometryEngine.project(mapPoint, mvHelper.getMapView().getSpatialReference(), sp);
        allPoints.add(p1Done);
        return super.onSingleTap(point);
    }

That GeoCoderAsyncTask translates the coords of the point to an address, and adds a marker to the map. The geocoding is done just right, I get my address and in PostExecute method I add the marker to the map:

protected void onPostExecute(String address) {
        mProgressDialog.dismiss();
        Toast.makeText(ctx,address,Toast.LENGTH_LONG).show();
        SpatialReference sp = SpatialReference.create(SpatialReference.WKID_WGS84);
        Point p1Done=(Point) GeometryEngine.project(point, mvHelper.getMapView().getSpatialReference(), sp);
        mvHelper.addMarkerGraphic(p1Done.getY(), p1Done.getX(), "Location", address, android.R.drawable.ic_menu_myplaces, null, false, 1);
    }

The problem is, I want the markers to be clickable, but if I click them, another marker is added. I have tried to nullify the MapOnTouchListener, but that way, no marker is added, and no click on marker is detected...

How could I acomplish that?

Thank you.

EDIT:

if I simply set a SingleTapListener on the map at the start of the execution of the app instead of setting my MapOnTouchListener, the markers are created, and are clickable:

mMapView.setOnSingleTapListener(new OnSingleTapListener() {
        @Override
        public void onSingleTap(float v, float v1) {
            mMapView.createIcon(v,v1);
        }
    });

After that, by clicking a button, I set the MapOnTouchListener, because I need another functionality (create an envelope and store the points in that envelope inside an array). After doing that, I try to nullify the MapOnTouchListener, and after that set the singleTapListener as in the start of the execution...and the markers are created, but cannot be clicked!!

0

There are 0 best solutions below