Android MapActivity onTap事件

问题描述:

我有一个MapActivity和地图引脚显示使用ItemizedOverlay。我想将onTap事件传递给MapActivity。 (onTap函数存在于ItemizedOverlay类中)。如何做到这一点?Android MapActivity onTap事件

+0

http://*.com/questions/4806061/how -do-i -response-a-tap-on-an-android-mapview-but-ignore-pinch-zoom – Yar

class CurOverlay extends Overlay 
{ 
    private GeoPoint pointToDraw; 
    String addstr,addcity; 
    @Override 
    public boolean onTap(GeoPoint p, MapView mapView) { 
     // TODO Auto-generated method stub 

     final double taplat,taplon; 
     taplat=p.getLatitudeE6()/1E6; 
     taplon=p.getLongitudeE6()/1E6; 



      Geocoder geo = new Geocoder(getApplicationContext(), Locale.getDefault()); 
      List<Address> add; 
      try 
      { 

       add = geo.getFromLocation(taplat,taplon,1); 

       Log.i("ADD OBJ SIZE IS----",""+add.size()); 
       if (add.size() > 0) 
       { 

        addstr = add.get(0).getAddressLine(0)+" "+add.get(0).getAddressLine(1); 
       } 
} 
catch (IOException e) 
      { 

       e.printStackTrace(); 
      } 

     return super.onTap(p, mapView); 
    } 
public void setPointToDraw(GeoPoint point) { 
    pointToDraw = point; 
    } 


    public GeoPoint getPointToDraw() { 
    return pointToDraw; 
    } 
} 

就在这个代码添加到您的tapactivity和其他活动(由ActivityforResult)调用它,那里简单的位置....

+0

谢谢..我以不同的方式解决了问题。我将一个MapActivity对象传递给ItemizedOverlay类。 ItemizedOverlay中的onTap()通过传递所需的引脚索引来调用MapActivity对象中的公共方法。 – sach