如何获取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();
});
Hello Diamond,你说得对。每次按键都会触发该事件,但由于我忘记重新验证/重新绘制列表,因此编辑完成后,我的筛选器才能正常工作。谢谢,Frans。 –
你可以对此和Mark标记为答案。 – Diamond