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