В настоящее время я работаю над приложением, которое использует MapView и добавляет к нему наложения. Обычно в любой момент список наложений никогда не должен превышать двух.
Вот что я пытался сделать ...
Я расширил класс ItemizedOverlay (MyFriendOverlay), а затем создал частный объект ArrayList внутри этого расширенного класса, к которому я бы прикрепил наложения. Тем не мение; Я столкнулся с проблемой, которую не знаю, как исправить. Если вы посмотрите на этот сегмент кода:
ImageView mapMarker = new ImageView(getApplicationContext());
mapMarker.setImageResource(R.drawable.markertrp);
myPointsToShow = new myFriendOverlay(mapMarker.getDrawable(), getApplicationContext());
Как можно отметить здесь, я создал ImageView со значком на основе моих чертежей. После этого у меня есть расширенный класс из ItemizedOverlay. В конструкторе он принимает два параметра: drawable и context.
Из того, что я знаю, требуется конструктор ниже (возможно, его можно изменить):
public myFriendOverlay(Drawable defaultMarker, Context context)
Проблема здесь в том, что я продолжаю создавать новый экземпляр myPointsToShow, что является проблемой, потому что у меня есть ArrayList, который я хочу использовать в расширенном классе, поэтому у меня есть прямой контроль над наложениями. И, создавая каждый раз новый экземпляр, я действительно не добавляю в сам список.
Короче:
Все, что я хочу, - это чтобы мое приложение имело две точки (A и B), где, если будет обнаружено новое местоположение, скажем, для B, затем удалите B из списка наложений и замените его новым местоположением. То же самое и с А. Чтобы упростить его, я хочу прикрепить индекс 0 к A и индекс 1 к B, чтобы он не охватывал две точки.
Я не могу найти решение для этого из-за проблемы с необходимым конструктором, возможно, я слишком много думаю об этом ...
Пожалуйста, оставьте свой отзыв! :)
Спасибо за прочтение.