HandlerRegistration的gwt问题

时间:2011-01-17 15:46:51

标签: gwt handlers

我有问题。 我有一个地图并添加了ClickHandler,但按下按钮后我想删除它。我知道有一些HandlerRegistration但我不知道如何使用它。 我的代码的一部分:

map.addMapClickHandler(new MapClickHandler()

        {
            public void onClick(MapClickEvent e) 
            {
                 ...
                }
        });

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

MapWidget#addMapClickHandler()不返回HandlerRegistration,但MapWidget类定义了removeMapClickHandler() method

map.addMapClickHandler(new MapClickHandler() {
  @Override
  public void onClick(MapClickEvent event) {
    // Make sure map is visible to this inner class. It needs
    // either to be a member of the enclosing class or final.
    map.removeMapClickHandler(this);
  }
});

答案 1 :(得分:0)

如果你还需要这个,我需要一段时间来找出解决方案

final Set<HandlerRegistration> hack = new HashSet<HandlerRegistration>();
hack.add(map.addMapClickHandler(new MapClickHandler() {
    public void onClick(MapClickEvent e) {
        ...
        // remove handler here
        for (HandlerRegistration hr : hack) {
            hr.removeHandler();
        }
    }
}));