2010-10-27 46 views
3

我有一个谷歌地图的简单叠加:http://pastebin.com/Rg8miMSh和我添加/删除取决于缩放级别上的项目。删除/添加我调用叠加层上的填充并在地图视图上无效。一切正常,除了1小故障:一个项目被删除后,如果我点击它的位置onTap仍然触发,因为OverlayItem不存在了,我得到java.lang.ArrayIndexOutOfBoundsException in com.google.android.maps .ItemizedOverlay.maskHelper(ItemizedOverlay.java:562)(全堆栈跟踪 - http://pastebin.com/KThn4ZLE去除OverlayItem点击事件后依旧会触发

任何人都知道为什么发生这种情况?最初我打电话清楚,并再次添加所有项目,这似乎并没有导致这个问题。然而,有很多项目成为性能问题。添加/删除差异的工作更快,我想保留这种方法。 谢谢!

回答

8

我解决了这个通过调用 “setLastFocusedIndex(-1);”在“doPopulate()”中。

+0

感谢你自己的问题跟进!刚刚遇到了这个 - 感谢修复。 android类必须坚持现在删除的overlayitem的一个实例,导致它抛出一个draw()。 – Paul 2011-02-14 00:02:51

+0

此问题的更多细节:[ItemizedOverlay&ArrayIndexOutOfBoundsException异常>说明和解决方案](https://groups.google.com/forum/?fromgroups#!topic/android-developers/OLETFONHFMM [1-25]) – 2012-08-20 13:09:39

+0

1为伟大的答案我花了3个以上一周内加入这一行我解决我的问题,感谢伟大的答案来解决这个问题,但没有成功... – 2013-03-20 08:05:35