如何为CodenameOne TextField中的每个更改获取事件

时间:2017-09-27 07:20:58

标签: events codenameone textfield

我正在使用CodenameOne构建应用程序,并希望使用TextField来过滤一长串项目。我尝试使用https://www.codenameone.com/javadoc/com/codename1/ui/TextField.html中提出的DataChangedListener,但这只会在用户完成编辑后触发一个事件(即按下'enter'键)。如何在文本字段中更改每个字符的事件?

1 个答案:

答案 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();
});