首页 > 解决方案 > 代号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,由于焦点侦听器无效,因此习语不起作用。

如何做到这一点:(

谢谢!

标签: codenameone

解决方案


Picker 是一个按钮,应该可以与焦点事件一起正常工作,但它可能会在单击完成后广播该事件。一般来说,焦点事件是为按键导航而设计的,所以我不会为触摸设备那样做。它们过于冗长,可能导致低于标准的行为。

我建议在复选框动作侦听器中翻转开关,而不是通过焦点刷新它。


推荐阅读