codenameone - 退出表单时如何检测输入字段是否仍在编辑?
问题描述
在我的应用程序中,我使用 actionListeners 来捕获用户何时输入数据,然后更新对象。但是,我注意到如果用户在编辑 TextArea 时退出表单 (previousForm.showBack()) 或未在选取器中单击完成,这将不起作用。这实际上是一个很常见的用例,因为用户输入数据并直接离开表单,这意味着数据经常丢失。
有没有办法处理这个问题,例如检测一个字段是否仍在被编辑并在用户退出表单时“强制”更新?理想情况下,它应该简单地触发通常的 actionListener 以避免重复代码。
我注意到 Form.getCurrentInputDevice() 但不明白它的目的,所以不确定这是否可以解决?
解决方案
您也可以使用.addDataChangedListener()
数据并将其保存到首选项。例如,
nameTextField.addDataChangedListener((evt1, evt2)->{
if(nameTextField.getText().trim().length()>0){
Preferences.set("name", nameTextField.getText().trim());
}
});
然后,如果您返回并返回此表单,您只需检索
String savedNameInput = Preferences.get("name", "");
推荐阅读
- elasticsearch - 其中一个 pod 副本未能通过 liveness 探测并重新启动
- python - 如果我自己实现客户端代码和接口,对客户端代码的防御性编程?
- python-3.x - Flask 应用程序和 azure 函数
- javascript - Office js(Word):是否可以获取搜索词的坐标(X;Y)?
- javascript - getInstalledRelatedApps() API 未检测到已安装的应用程序
- javascript - 在本地存储中保存一个 css 显示值
- django - urlspattern 中的几个 id
- ios - 使用正交滚动行为时,isScrollEnabled 在集合视图中不起作用
- r - 是否有可能从 R 中的一长列两小?
- java - Android File.listFiles() 仅返回子目录