Я пытаюсь реализовать приложение, в котором вы можете добавить свой собственный маркер, которому будет указано время выключения. Для этого мне нужно знать, как управлять маркерами. Допустим, у меня есть список пользователей с присвоенным уникальным идентификатором.
private ArrayList<User> userList = new ArrayList<>();
Затем я создам список маркеров, который будет содержать такую информацию, как широта, долгота, название, идентификатор владельца и крайний срок.
private ArrayList<MyMarker> mMarkersArray = new ArrayList<MyMarker>();
Затем, когда пользователь активирует метод добавления маркера, новый маркер будет добавлен в мой список маркеров. Идеологически все выглядит красиво и просто, к тому же создание нового объекта выглядит так:
Marker mMarker = mMap.addMarker(new MarkerOptions() (...) );
но когда дело доходит до управления конкретными маркерами, кажется, что я что-то упускаю. Будет какой-то триггерный метод, который будет проверять дедлайн всех маркеров (точнее, первого в списке «отсортированных по дедлайну»), а затем должен удалить (не скрыть, потому что я думаю, что это было бы неэффективно с точки зрения памяти) ). Как этого добиться? Я не могу добавить какую-то пользовательскую переменную, такую как ID, к маркерам (чтобы я мог найти ту, которая меня интересует), и я немного потерялся.
Есть способ добиться этого, очистив всю карту, а затем снова отрендерив все маркеры, кроме неактивных, но, насколько я понимаю, это очень неэффективно, и должно быть лучшее решение.
extends
провести курс. Или вы можете использоватьHashMap
для хранения маркеров вместо списка. Для каждой пары вHashMap
вы можете установить Маркер какkey
, а крайний срок какvalue
. - person ztan   schedule 05.06.2015