지도 오버레이를 정의했으며 문제없이 마커를 표시 할 수 있습니다. 나는 지금 하나를 살짝 잡을 때 일어날 일을 얻으려고 노력하고 있지만, 그 사건은 결코 발사되는 것처럼 보이지 않습니다. 나는 분명히 뭔가를 놓치고있어 확신 해요 ...ItemizedOverlay OnTap()이 실행되지 않음
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 자체 잘못 됐어?
맵뷰 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"/>
그리고 내가 어떤 추첨 이벤트 또는 아무것도를 오버라이드 (override) 아니에요 ...
그것은 그 것이었다 - 나는 그것이 단순 할 것이라고 알았다! – James
대개! 다행히 도울 수있어. – ePeace