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

问题描述:

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

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(); 
}); 
+0

Hello Diamond,你说得对。每次按键都会触发该事件,但由于我忘记重新验证/重新绘制列表,因此编辑完成后,我的筛选器才能正常工作。谢谢,Frans。 –

+0

你可以对此和Mark标记为答案。 – Diamond