Android MapActivity onTap事件
我有一个MapActivity,并使用ItemizeOverlay显示贴图管脚。我想将onTap事件传输到MapActivity。(onTap函数存在于ItemizeOverlay类中)。如何做到这一点?Android MapActivity onTap事件,android,android-maps,mapactivity,Android,Android Maps,Mapactivity,我有一个MapActivity,并使用ItemizeOverlay显示贴图管脚。我想将onTap事件传输到MapActivity。(onTap函数存在于ItemizeOverlay类中)。如何做到这一点?类CurOverlay扩展了Overlay class CurOverlay extends Overlay { private GeoPoint pointToDraw; String addstr,addcity; @Override public boolea
类CurOverlay扩展了Overlay
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;
}
}
{
私人地质点绘制;
字符串addstr,addcity;
@凌驾
公共布尔onTap(地理点p,地图视图地图视图){
//TODO自动生成的方法存根
最终双塔普拉特,塔普隆;
taplat=p.getlatudee6()/1E6;
taplon=p.getLongitudeE6()/1E6;
Geocoder geo=新的地理编码器(getApplicationContext(),Locale.getDefault());
列表添加;
尝试
{
add=geo.getFromLocation(taplat,taplon,1);
Log.i(“添加对象大小为----”,“”+ADD.SIZE());
如果(添加.size()>0)
{
addstr=add.get(0.getAddressLine(0)+“”+add.get(0.getAddressLine(1);
}
}
捕获(IOE异常)
{
e、 printStackTrace();
}
返回super.onTap(p,mapView);
}
公共无效设置点ToDraw(地质点){
pointToDraw=点;
}
公共地质点getPointToDraw(){
返回点ToDraw;
}
}
只需将此代码添加到您的tapactivity中,并从其他activity(by ActivityforResult)调用它,然后在那里获得简单的位置 谢谢。。我以不同的方式解决了这个问题。我将MapActivity对象传递给ItemizeOverlay类。ItemIzeOverlay的in-onTap()通过传递所需的pin索引调用MapActivity对象中的公共方法。