【发布时间】:2015-06-25 13:42:44
【问题描述】:
在尝试使用 GWT 的 ListEditor 系统时,我无法找到一个工作示例,其中列表中每个项目的 UI 都有一个删除/删除按钮。
我发现的例子都像 this one[1] 并且有一个 EditorSource.create() 实现创建每个项目 Editor 并且似乎连接了一个处理程序以通过 listEditor.getList().remove(index) 从基础列表中删除项目.
但是,删除处理程序的匿名实现在子编辑器创建时围绕 index 的值关闭,这会导致 IndexOutOfBoundExceptions 或错误的项目被删除,因为每次删除都会更改所有项目的索引来吧。
我拉了一会儿头发,试图看看我在示例中缺少什么以防止这种情况发生,但据我所知,他们确实都有这个问题,所以虽然修复相当简单,但我仍会在此处发布,因此人们至少可以找到一个正确移除项目的示例。
[1] 我认为我找到的所有示例都源自我链接的示例,尽管该示例在 remove() 中具有更多逻辑,并且可能一直在做一些事情来避免问题,例如更正列表以某种方式订购,我还没有深入研究该项目中的其他代码。
【问题讨论】:
标签: gwt indexoutofboundsexception gwt-editors