GWT проблема с HandlerRegistration

У меня проблема. У меня есть карта и я добавил ClickHandler, но после нажатия кнопки я хочу удалить ее. Я знаю, что есть некоторая регистрация HandlerRegistration, но я не знаю, как ее использовать. часть моего кода:

map.addMapClickHandler(new MapClickHandler()

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

Может кто-нибудь мне помочь?

2 ответа

Если вам все еще это нужно, мне понадобилось время, чтобы найти решение

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();
        }
    }
}));

MapWidget#addMapClickHandler() не возвращает HandlerRegistration, но класс MapWidget определяет метод removeMapClickHandler():

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);
  }
});
Другие вопросы по тегам