入力された文字と検出を処理するためにスマートなものが必要な次のコードがあります。
private final MultiWordSuggestOracle mySuggestions = new MultiWordSuggestOracle();
private final Set<String> mySuggestionsData = new HashSet<String>();
@UiHandler("suggestBox")
public void onKeyPress(KeyDownEvent event) {
if (Character.isLetterOrDigit(event.getCharCode())) {
char[] text = suggestBox.getText().trim().toCharArray();
if (text.length != 1) return;
for (char ch : text) {
if (!Character.isLetterOrDigit(ch)) {
return;
}
}
//load data from server into mySuggestionsData
}
}
質問には 3 つの部分があります。
押されたキーを英数字に対してどのようにテストしますか。これはGWTであるため、正規表現を使用したくないことに注意してください(ただし、他にオプションがない場合...)。
SuggestBox に入力されたテキストの長さを検出する最良の方法は何ですか?
KeyDownEven は最良の選択ですか? また、任意のキーが押されたときに 2 回トリガーされるのはなぜですか?