我正在使用CodenameOne构建应用程序,并希望使用TextField来过滤一长串项目。我尝试使用https://www.codenameone.com/javadoc/com/codename1/ui/TextField.html中提出的DataChangedListener,但这只会在用户完成编辑后触发一个事件(即按下'enter'键)。如何在文本字段中更改每个字符的事件?
答案 0 :(得分:3)
DataChangedListener
会触发每个键输入,而不是按下Enter
键时(这是actionListener
)。
private String filterString = "";
...
filterTextField.addDataChangedListener((evt1, evt2) -> {
if (filterTextField.getText().trim().length() > 0 && !filterString.equalsIgnoreCase(filterTextField.getText().trim())) {
//perform your filter here
//revalidate your form
}
filterString = filterTextField.getText().trim();
});