如何获取带有标签的容器的索引?

问题描述 投票:0回答:1

我正在尝试获取持有标签的容器的索引,以便我可以将位置存储在数据库中,检索位置并将标签放置在不同屏幕上的相同位置。我尝试使用以下代码来获取索引,这样我就不必创建查找表。我得到类 com.codename1.ui.Container 中的方法 getComponentIndex 无法应用于给定类型;。有人解决过这个问题吗? lwpos 是一个 int,lbllw 是一个标签。

lwpos = lbllw.getParent().getComponentIndex();
codenameone
1个回答
0
投票

该代码无法编译,但以下代码可以:

lwpos = lbllw.getParent().getComponentIndex(lbllw);

但是,我认为这种方法不一定是您想要做的,因为组件索引很脆弱。我建议使用类似的方式给组件命名:

lbllw.setName("MyLabel");

然后在运行时你可以做类似的事情:

public Component findByName(String name, Container rootContainer) {
    for(Component c : rootContainer) {
        if(name.equals(c.getName())) {
            return c;
        } 
        if(c instanceof Container) {
            Component result = findByName(name, (Container)c);
            if(result != null) {
                return result;
            }
        }
    }
    return null;
}
© www.soinside.com 2019 - 2024. All rights reserved.