我已经定义了一个地图覆盖,并且我可以毫无问题地显示标记。我现在正在尝试当我点击一个按钮时发生一些事情,但事件似乎永远不会触发。我肯定我漏掉了一些明显的东西。
public class MapBlobCollection extends ItemizedOverlay<OverlayItem> {
@SuppressWarnings("serial")
public class ItemTappedEvent extends EventObject
{
public ItemTappedEvent(int itemIndex) {
super(itemIndex);
}
}
private ArrayList<OverlayItem> myOverlays ;
public MapBlobCollection(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
myOverlays = new ArrayList<OverlayItem>();
populate();
}
public void addOverlay(OverlayItem overlay){
myOverlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return myOverlays.get(i);
}
// Removes overlay item i
public void removeItem(int i){
myOverlays.remove(i);
populate();
}
// Returns present number of items in list
@Override
public int size() {
return myOverlays.size();
}
public void addOverlayItem(OverlayItem overlayItem) {
myOverlays.add(overlayItem);
populate();
}
public void addOverlayItem(int lat, int lon, String title) {
try {
GeoPoint point = new GeoPoint(lat, lon);
OverlayItem overlayItem = new OverlayItem(point, title, null);
addOverlayItem(overlayItem);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
@Override
protected boolean onTap(int index) {
super.onTap(index);
Log.d("TESTING","Triggering tap event on " + Integer.toString(index));
EventManager.triggerEvent(this, new ItemTappedEvent(index));
return true;
}
}基本上,调试日志条目不会被写入,事件也不会触发。
此外,我的mapview本身不会平移(应该这样吗,而不需要我编写任何额外的代码?)尽管设置了setBuitInZoomControls(true),但它们也不会出现...那么,也许mapview本身就有问题呢?
地图视图在布局中定义为:
<com.google.android.maps.MapView
android:id="@+id/indexMapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:apiKey="@string/mapskey_release"/>我不会重写任何抽签事件或其他事情。
发布于 2012-09-19 17:06:07
我相信你需要加上
android:clickable="true"到您的地图视图
发布于 2012-09-19 17:19:24
尝试将超级函数移到末尾:
@Override
protected boolean onTap(int index) {
Log.d("TESTING","Triggering tap event on " + Integer.toString(index));
EventManager.triggerEvent(this, new ItemTappedEvent(index));
return super.onTap(index);
} https://stackoverflow.com/questions/12491426
复制相似问题