【问题标题】:How to get an event for every change in a CodenameOne TextField如何为 CodenameOne TextField 中的每次更改获取事件
【发布时间】:2018-03-08 13:57:05
【问题描述】:

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

【问题讨论】:

    标签: events codenameone textfield


    【解决方案1】:

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

    【讨论】:

    • 你好,钻石,你是对的。每次按键都会触发该事件,但我的过滤器仅在编辑完成时才能正常工作,因为我忘记重新验证/重新绘制列表。谢谢,弗兰斯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 2018-10-06
    • 1970-01-01
    相关资源
    最近更新 更多