在GWT中清除模糊提示框
我在GWT有一个建议箱。当它模糊时,有没有办法清除它(除非用户做出选择,在这种情况下应该执行操作)?使用在GWT中清除模糊提示框,gwt,suggestbox,Gwt,Suggestbox,我在GWT有一个建议箱。当它模糊时,有没有办法清除它(除非用户做出选择,在这种情况下应该执行操作)?使用ValueChangeHandler尝试此方法: 注意:ValueChange事件与Blue事件具有相同的行为,但只有在建议框中的值发生更改时才会触发该事件 class MyMultiWordSuggestOracle extends MultiWordSuggestOracle { private Set<String> values = new HashSet<S
ValueChangeHandler
尝试此方法:
注意:ValueChange
事件与Blue
事件具有相同的行为,但只有在建议框中的值发生更改时才会触发该事件
class MyMultiWordSuggestOracle extends MultiWordSuggestOracle {
private Set<String> values = new HashSet<String>();
@Override
public void add(String value) {
super.add(value);
values.add(value);
}
@Override
public void clear(){
super.clear();
values.clear();
}
public boolean contains(String value) {
return values.contains(value);
}
}
MyMultiWordSuggestOracle类扩展了MultiWordSuggestOracle{
私有集值=新HashSet();
@凌驾
公共空添加(字符串值){
超级增值;
增加(价值);
}
@凌驾
公共空间清除(){
super.clear();
value.clear();
}
公共布尔包含(字符串值){
返回值。包含(值);
}
}
您的代码是:
final MyMultiWordSuggestOracle oracle = new MyMultiWordSuggestOracle();
oracle.add("A");
oracle.add("AB");
oracle.add("BCD");
oracle.add("BCDE");
final SuggestBox suggestionBox = new SuggestBox(oracle);
suggestionBox.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
if (!oracle.contains(event.getValue())) {
suggestionBox.setValue("");
}
}
});
final MyMultiWordSuggestOracle oracle=新建MyMultiWordSuggestOracle();
甲骨文。添加(“A”);
甲骨文。添加(“AB”);
甲骨文。添加(“BCD”);
甲骨文。添加(“BCDE”);
final SuggestBox SuggestBox=新的SuggestBox(oracle);
suggestionBox.addValueChangeHandler(新的ValueChangeHandler(){
@凌驾
ValueChange上的公共作废(ValueChangeEvent事件){
如果(!oracle.contains(event.getValue())){
suggestionBox.setValue(“”);
}
}
});
添加一个模糊处理程序:
suggestionBox.getValueBox().addBlurHandler(new BlurHandler() {
@Override
public void onBlur(BlurEvent event) {
// your code goes here
}
});
你的链接不是这样说的。您将其与getTextBox()混淆。不幸的是,单击下拉列表中的项目时,这会导致SuggestBox丢失。这可能是由于(!oracle.equals(event.getValue())中区分大小写的值造成的。打印
event.getValue()
的值。我不这么认为。它工作得很好。请分享您的部分代码好吗?根据文档,oracle是一个SuggestionRacle,而event.getValue()只能返回字符串。您使用的是com.google.gwt.user.client.ui.MultiwordSuggestionOracle
?