2011-08-11 2 views
0

MapActivity 및 Map 핀이 ItemizedOverlay를 사용하여 표시됩니다. onTap 이벤트를 MapActivity로 전송하려고합니다. (onTap 함수는 ItemizedOverlay 클래스에 있습니다.) 이것을 어떻게 할 수 있습니까?Android MapActivity onTap 이벤트

+0

http://stackoverflow.com/questions/4806061/how .... 당신의 tapactivity에이 코드를 추가하고 (ActivityforResult에 의해) 다른 활동에서 호출 거기에 간단한 위치를 얻을 -do-i-respond-to-a-on-an-android-mapview-ignore-pinch-zoom – Yar

답변

0
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; 
    } 
} 

그냥

+0

감사합니다. 나는 다른 방식으로 해결했습니다. MapActivity 객체를 ItemizedOverlay 클래스로 전달했습니다. ItemizedOverlay의 onTap()에서 MapActivity 객체에서 public 메소드가 호출되었습니다. 필요한 메소드 인 pin topped가 전달되었습니다. – sach