在我的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>
非常感谢任何帮助!
答案 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();