В настоящее время я работаю над приложением, которое использует MapView и добавляет к нему оверлеи. По сути, в любой момент времени оверлейный список не должен превышать двух.
Вот что я пытался сделать ...
Я расширил класс ItemizedOverlay (MyFriendOverlay), а затем создал частный объект ArrayList внутри этого расширенного класса, к которому я бы прикрепил оверлеи. Тем не мение; Я столкнулся с проблемой, которую я не знаю, как решить. Если вы посмотрите на этот сегмент кода:
ImageView mapMarker = new ImageView(getApplicationContext());
mapMarker.setImageResource(R.drawable.markertrp);</p>
<p>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, чтобы он не охватывал две точки.
Я не могу найти решение для этого из-за проблемы необходимого конструктора, возможно, я слишком много думаю об этом ...
Пожалуйста, оставляйте отзывы! :)
Спасибо за чтение.