我想在文本框中设置值时触发一个事件,setText("something")
到目前为止我尝试过什么
w.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
isChanged = true;
}
});
我还尝试自定义一个文本框来侦听过去的事件
class CustomTextBox extends TextBox implements HasHandlers {
private HandlerManager handlerManager;
public CustomTextBox() {
super();
handlerManager = new HandlerManager(this);
sinkEvents(Event.ONPASTE);
}
@Override
public void onBrowserEvent(Event event) {
super.onBrowserEvent(event);
switch (event.getTypeInt()) {
case Event.ONPASTE:{
fireEvent(new TextChangeEvent());
break;
}
default:
// Do nothing
}
}
@Override
public void fireEvent(GwtEvent<?> event) {
handlerManager.fireEvent(event);
}
public HandlerRegistration addTextChangeEventHandler(TextChangeEventHandler handler) {
return handlerManager.addHandler(TextChangeEvent.TYPE, handler);
}
}
如果没有成功,任何建议将不胜感激。
setText
不会触发事件。
将ValueChangeHandler<String>
添加到TextBox
,然后使用 setValue("something", true)
向所有处理程序触发ValueChangeEvent<String>
,同时设置新值,无论是否禁用了框 ID。