В моем приложении требование - когда я касаюсь любого местоположения на карте, мне нужно создать новый оверлей и показать его с помощью маркера, и если я коснусь любого местоположения, которое помечено, я должен показать его данные в воздушный шар.
OnTap() и onTouchEvent(), написанные внутри моего класса ItemizedOverlay, выглядят следующим образом:
@Override
protected boolean onTap(int index) {
if(!super.onTap(index)) {
MyOverlayItem<OverlayItem> overlayItem = new MyOverlayItem<OverlayItem>(
createItem(index).getPoint(), createItem(index).getTitle(),
createItem(index).getSnippet(), mapView, activity);
overlayItem.onTap(createItem(index).getPoint(), mapView);
}
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView) {
GeoPoint point = mapView.getProjection().fromPixels(
(int) event.getX(),
(int) event.getY());
addPoint(point);
return true;
}
InTap() внутри MyOverlayItem выглядит следующим образом:
public boolean onTap(GeoPoint point, MapView mapView) {
createBalloon(); //creates the balloon view.
return true;
}
Моя проблема:
Если я добавляю этот onTouchEvent(), onTap() не получает вызов. Всегда добавляется новая точка.
Как я могу достичь своего требования? Я смущаюсь с обоими этими методами. Кто-нибудь может помочь мне. Спасибо заранее.
hi mathew проверить эту ссылку, которая может помочь вам решить вашу проблему