Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
属性值更改时更新CodenameOne侧菜单命令_Codenameone - Fatal编程技术网

属性值更改时更新CodenameOne侧菜单命令

属性值更改时更新CodenameOne侧菜单命令,codenameone,Codenameone,我希望能够根据动态更新的ListProperty的大小更改侧菜单命令的标题。我曾试图通过changeListener来实现这一点,但我无法实现这一点 Command cmdWishlist = tb.addMaterialCommandToRightSideMenu("Wishlist(" + Shop.getInstance().wishList.size() + ")", FontImage.MATERIAL_FAVORITE, e -> { .... });

我希望能够根据动态更新的ListProperty的大小更改侧菜单命令的标题。我曾试图通过changeListener来实现这一点,但我无法实现这一点

Command cmdWishlist = tb.addMaterialCommandToRightSideMenu("Wishlist(" + Shop.getInstance().wishList.size() + ")", FontImage.MATERIAL_FAVORITE, e -> {
        ....
    });
    Shop.getInstance().wishList.addChangeListener(pl -> {
        tb.revalidate();
    });
然而,如果我打开另一个表单,并检查侧菜单,我需要的更改就是反射。我怎样才能让它工作?顺便说一句,如果我在工具栏上放置一个标签,然后在更改侦听器中
setText(“Wishlist”(+Shop.getInstance().Wishlist.size()+)
,我就会得到所需的行为


请给我指出正确的方向

当我们将命令添加到侧菜单或按钮时,我们提取其值,但不会自动反映更新,因为这可能会通过将命令绑定到组件而导致潜在内存泄漏。解决方法是修改原始基础组件,例如:

Button ui = tb.findCommandComponent(cmd);
ui.setText(newLabelForCommand);