我需要檢查新創建的OverlayItem的數據是否已經存在於已經顯示在地圖上的OverlayItem列表中。我做了一個代碼來檢查OverlayItem的數據是否已經存在,但是我遇到了一個錯誤。我如何從Overlay中提取OverlayItem?如何從Overlay中提取OverlayItem?
我當前的代碼是這樣的:
//where mapOverlays = mapView.getOverlays() and overlayItem is the newly created overlayItem
public boolean isExisting(List<Overlays> mapOverlays, OverlayItem overlayItem)
{
ItemizedOverlay overlay;
OverlayItem itemToCompare;
for(int i = 0; i < mapOverlays.size(); i++)
{
overlay = (ItemizedOverlay)mapOverlays; //I am getting an error here: java.util.Collections$SynchronizedRandomAccessList (from e.getMessage()). The stack trace does not contain any specific exception but only the trace of the error pointing to this line.
existingOverlayItem = overlay.getItem(i);
if(itemToCompare.getPoint().equals(overlayItem.getPoint())
&& itemToCompare.getSnippet().equals(overlayItem.getSnippet())
&& itemToCompare.getTitle().equals(overlayItem.getTitle()))
return true; //if all data are the same
}
return false;
}
你是如何創建你的類'MapOverlay'是一個List類?它似乎不符合'List'。我也會改變你的循環到foreach。 (Overlay ol:mapOverlays){.....}'。什麼是「itemToCompare」?顯示更多信息以瞭解它。 –
2012-02-10 10:01:14
是的,我創建了MapOverlay。它擴展了ItemizedOverlay。 itemToCompare與existingOverlayItem相同。我已經更新了我的代碼。 – Arci 2012-02-10 10:12:24
好的。所以你已經修復它了。 – 2012-02-10 10:14:54