codenameone - 代号One Picker 事件
问题描述
我想让我的通用 Picker 组件在创建时加载首选项并在更改时保存它们。
我可以很容易地用以下成语对 TextField 或 CheckBox 做同样的事情
checkBox.setSelected(Preferences.get(key, false));
checkBox.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final Component cmp)
{
}
@Override
public void focusLost(final Component cmp)
{
Preferences.set(key, checkBox.isSelected());
}
});
但是,对于 Picker 和 PickerComponent,由于焦点侦听器无效,因此习语不起作用。
如何做到这一点:(
谢谢!
解决方案
Picker 是一个按钮,应该可以与焦点事件一起正常工作,但它可能会在单击完成后广播该事件。一般来说,焦点事件是为按键导航而设计的,所以我不会为触摸设备那样做。它们过于冗长,可能导致低于标准的行为。
我建议在复选框动作侦听器中翻转开关,而不是通过焦点刷新它。
推荐阅读
- ios - 将条目添加到日历 iOS - Xamarin
- c# - 如何通过规则编辑器设置动态消息?
- javascript - 如何避免 Next.js 动态路由中出现“id undefined”?
- keras - 从 YOLOv3 获取特征提取
- python-3.x - 命令引发异常:HTTPException:400 Bad Request(错误代码:50007):无法向该用户发送消息
- sql-server - EF Core 3.1 产生不正确的查询翻译
- c# - SQL命令中Try-Catch的不一致问题,用C#执行
- batch-file - 任何程序退出后如何在DOS中执行文件?
- git - 如果不使用 --dir-diff 选项,为什么 git difftool 不会在 macOS 上开始融合?
- java - 空气阻力在这个模拟中导致速度急剧上升