Я совершенно новичок в разработке Android, я использовал osmdroid при создании приложения для Android, я хочу получить точку, нажав на карту, и я нашел это решение:
MapEventsReceiver mReceive = new MapEventsReceiver()
{
@Override
public boolean singleTapConfirmedHelper(GeoPoint p) {
Toast.makeText(getBaseContext(),p.getLatitude() + " - "+p.getLongitude(),Toast.LENGTH_LONG).show();
GeoPoint point = new GeoPoint(p.getLatitude(),p.getLongitude());
// This is the line i will explain in problem #2
Global_point = point;
return true;
}
@Override
public boolean longPressHelper(GeoPoint p) {
return false;
}
};
MapEventsOverlay OverlayEvents = new MapEventsOverlay(mReceive);
mapView.getOverlays().add(OverlayEvents);
этой страницей , и я поместил ее в Onclick
функцию кнопки.
Проблемы заключаются в следующем:
1- Это (получение точки)Не остановится и будет работать вечно. Как я могу остановить его, когда GeoPoint получен?
2- MapEventsReceiver - это интерфейс, который должен реализовывать, как он определен, поэтому функция singleTapConfirmedHelper
должна возвращать логическое значение. Как я могу вернуть полученную GeoPoint, нажав?Я знаю, что могу определить глобальную переменную и заполнить ее в функции singleTapConfirmedHelper, но я спрашиваю, возможно ли изменить возвращаемое значение функции интерфейса.
Ps : я знаю, что могу удалить наложение карты с помощью индексации:
mapView.getOverlays().add(0,OverlayEvents);
mapView.getOverlays().remove(0);
, но я не знаю, где его разместить.