Codenameone createContainer()和GUI生成器中定义的事件

Codenameone createContainer()和GUI生成器中定义的事件,codenameone,Codenameone,我在GUI生成器中创建了一个空白容器。 使用GUI构建器,我在容器的PostShow事件上附加了一个事件 当我使用以下内容创建容器时: Container c=createContainer(fetchResourceFile(),“MycontainterName”); f、 添加组分(c) 事件方法永远不会被激发 如何启动该活动 这同样适用于容器中组件上定义的事件:它们永远不会被激发。事件在表单上激发,但使用createContainer无法跟踪组件的使用情况 我猜您试图通过Embedded

我在GUI生成器中创建了一个空白容器。 使用GUI构建器,我在容器的PostShow事件上附加了一个事件

当我使用以下内容创建容器时:

Container c=createContainer(fetchResourceFile(),“MycontainterName”);
f、 添加组分(c)

事件方法永远不会被激发

如何启动该活动


这同样适用于容器中组件上定义的事件:它们永远不会被激发。

事件在表单上激发,但使用
createContainer
无法跟踪组件的使用情况


我猜您试图通过
EmbeddedContainer
实现的目标是可行的,这将允许您将
容器
嵌入父表单。

为了添加embed容器,我在表单中添加了EmbeddedContainer。但我想在代码上更改它的内容。我尝试使用findEmbeddedContainer().setEmbed(“MycontainterName”);但它不显示容器。但是,如果我将GUI builder中的嵌入值设置为“MycontainterName”容器,它就会工作。要正确嵌入容器,还需要执行其他操作吗?可以使用container.replace()调用替换容器的内容。但是,通常情况下,如果嵌入式容器中有导航命令,它将隐式替换内容“就地”OK,但问题是不会触发事件(在按钮操作、后期显示等时定义)。我使用以下代码:Container embed=createContainer(fetchResourceFile(),“MycontainterName”);替换(oldcontainer,嵌入,CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL,false,200));但这不起作用。我可以通过调用postShowContainer(嵌入)来调用PostShow事件;但我不认为这是最好的方法…如果您使用createContainer而不使用show来显示容器侦听器,则不会绑定。您需要找到自己的组件,并使用action listener等绑定到它们。如果使用show或standard navigation,那么事件竞价应该是无缝的。我曾尝试使用showContainer(),但无法实现我想要的。首先,不会触发动作事件。其次,该容器无法嵌入到另一个容器中(或者我找不到如何执行此操作)。所以我使用createContainer,然后在需要它的组件上添加addActionListener()调用。