按下按钮时无法强制选择器显示

时间:2018-05-02 04:49:36

标签: codenameone

在我的CN1应用中有一个opacity。当我按下它时,我希望触发其Multibutton方法中定义的Picker操作。为此,我将我的代码段基于https://www.codenameone.com/manual/events.html

所以我在addActionListener Multibutton方法中添加了

addActionListener

其中侦听器是 listeners.fireActionEvent(new ActionEvent(picker, ActionEvent.Type.PointerPressed)); 对象,而选择器是EventDispatcher对象。

在选择器Picker中,我添加了

addActionListener

但是当我按下Multibutton时Picker没有被触发,虽然当我按下选择器(为了测试目的而布局)并验证选择时它打印出事件是 listeners.addListener(e); 并且actualComponent是{ {1}}。

当用户按下(多个)按钮以便用户不必按下按钮,然后按Picker并最终验证选择时,可以直接“打开”Picker。他们只需按下按钮并验证选择。

修改 我添加了

PointerPressed

Picker方法之前,但现在我得到了      listeners.addListener(new ActionEvent(picker, ActionEvent.Type.PointerPressed)); 关于拨打picker.addActionListener的电话。{/ p>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

是的,当用户点击(多个)按钮时,可以打开Picker。 试试这段代码:

Form hi = new Form("Hi World", BoxLayout.y());
MultiButton multiButton = new MultiButton("MultiButton");
Picker picker = new Picker();
multiButton.addActionListener(l -> {
    picker.pressed();
    picker.released();
});
picker.setType(Display.PICKER_TYPE_STRINGS);
picker.setStrings("String 1", "String 2", "String 3");
picker.setSelectedStringIndex(0);
picker.addActionListener(l -> {
    Log.p("Picker selected string: " + picker.getSelectedString());
});
hi.add(multiButton).add(picker);
hi.show();