首页 > 解决方案 > 退出表单时如何检测输入字段是否仍在编辑?

问题描述

在我的应用程序中,我使用 actionListeners 来捕获用户何时输入数据,然后更新对象。但是,我注意到如果用户在编辑 TextArea 时退出表单 (previousForm.showBack()) 或未在选取器中单击完成,这将不起作用。这实际上是一个很常见的用例,因为用户输入数据并直接离开表单,这意味着数据经常丢失。

有没有办法处理这个问题,例如检测一个字段是否仍在被编辑并在用户退出表单时“强制”更新?理想情况下,它应该简单地触发通常的 actionListener 以避免重复代码。

我注意到 Form.getCurrentInputDevice() 但不明白它的目的,所以不确定这是否可以解决?

标签: codenameone

解决方案


您也可以使用.addDataChangedListener()数据并将其保存到首选项。例如,

nameTextField.addDataChangedListener((evt1, evt2)->{
     if(nameTextField.getText().trim().length()>0){
         Preferences.set("name", nameTextField.getText().trim());
     }
});

然后,如果您返回并返回此表单,您只需检索 String savedNameInput = Preferences.get("name", "");


推荐阅读