Уважаемые друзья!
Как подменить листенер в ранее созданной кнопке?
Т.Е. Есть некоторая стандартная форма ( MyForm form) со стандартной логикой. По клику на некоторой кнопке производится определенная работа. Имеется способ обратиться к данной кнопке из вне:
Button newBtn = form.getThatButton();
добавляем листенер:
btnNew.addClickListener(new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
System.out.println(" —===>>>}}}");
}
});
Всё хорошо. Однако при клике на кнопке сначала вызывается обработчик, определенный ранее в классе формы. затем новый листерен.
Как удалить старый листенер?
Код, приведенный ниже, почему то не работает.
Collection<?> listeners = btnNew.getListeners(Button.ClickListener.class);
for(Object cl : listeners){
btnNew.removeClickListener((Button.ClickListener) cl);
}
getListeners возвращает пустую коллекцию.
Спасибо!!!