我想在使用setText("something")
到目前为止我尝试了什么
w.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
isChanged = true;
}
});
我还尝试了一个自定义的TextBox来收听过去的事件
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);
}
}
如果没有成功,我们将不胜感激。
答案 0 :(得分:2)
setText
不会触发事件。
向ValueChangeHandler<String>
添加TextBox
,然后在设置新值时使用setValue("something", true)
向所有处理程序发送ValueChangeEvent<String>
,无论是否禁用了框ID。