【发布时间】:2013-03-20 01:44:56
【问题描述】:
我从我的服务器获取了一个很长的、可变的Markers 和Polylines 列表。在某些情况下,Markers 必须更改其图标,Polylines 必须更改其颜色。
我的对象有 id,所以我应该能够知道我必须更新哪个折线/标记。但是,标记和折线没有setId() 或getId() 方法,它们会在服务器请求时动态更新(和添加)。
我曾考虑使用HashMap<Integer, Marker> 和HashMap<Integer, Polyline> 来了解我应该删除然后添加哪些项目。我想到了这个:
- 我收到了一件物品。我得到了它的 ID。
- 我在正确的
HashMap中查询具有相同 ID 的项目。 - 如果HashMap不返回null,我调用
Marker.remove()或Polyline.remove(),然后我从HashMap中删除该项 - 现在
hashMap.get(id)无论如何都应该返回null,所以我在GoogleMap中绘制Polyline/Marker将项目添加到HashMap。
但在我开始实施之前,我想知道是否有任何不涉及使用巨型 HashMaps 的方法来做到这一点。
有没有其他方法可以在不使用HashMaps、SparseArrays 或类似的东西的情况下实现此行为?
【问题讨论】:
标签: android hashmap google-maps-api-2