0

私は問題があります。マップがあり、ClickHandler を追加しましたが、ボタンを押した後、それを削除したいと考えています。HandlerRegistration があることは知っていますが、その使用方法がわかりません。私のコードの一部:

map.addMapClickHandler(new MapClickHandler()

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

誰でも私を助けることができますか?

4

2 に答える 2

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();
        }
    }
}));
于 2011-03-11T16:17:04.890 に答える
0

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);
  }
});
于 2011-01-17T19:09:44.217 に答える