Codename One - Picker的addActionListener

时间:2018-02-13 01:55:37

标签: codenameone

在Android和iOS的许多版本中,以下代码显示了选项"取消"和"好的"。我想只有当用户点击" OK"时才会执行addActionListener代码。按钮。目前,即使用户点击"取消"该代码也会被执行。按钮:

    Form hi = new Form("Hi World", BoxLayout.y());
    Picker languagePicker = new Picker();
    languagePicker.setType(Display.PICKER_TYPE_STRINGS);
    languagePicker.setStrings("Italian", "English", "German");
    languagePicker.setSelectedString("English");
    languagePicker.addActionListener((ev) -> {
        String newLanguage = languagePicker.getSelectedString();
        if (newLanguage != null && newLanguage.length() > 0) {
            Log.p("Language selected: " + newLanguage);
        }
    });
    hi.add(languagePicker);
    hi.show();

2 个答案:

答案 0 :(得分:1)

Picker是本机组件。因此,在使用它时,我们不具备这种访问级别或一致性。请记住,在某些形式中,它甚至没有元素列表,因此我们的控制非常有限。

答案 1 :(得分:1)

我在几个Android设备上使用选择器并且它们按预期工作,这意味着只有在按下OK按钮时才会执行操作。

按下取消按钮不会执行任何操作。

但我可以在模拟器中重现错误。

你在设备上试过吗?