Если вы хотите добавить дочерние объекты непосредственно к MainScreen
, тогда да, вам нужно передать ссылку на главный экран, например:
public class CustomTabBar {
private HorizontalFieldManager bar;
public void buildBar(MainScreen main) {
bar = new HorizontalFieldManager();
Bitmap eventIcon = Bitmap.getBitmapResource("eventsicon.png");
Bitmap eventIcon_hover = Bitmap.getBitmapResource("eventsicon-hover.png");
CustomMenuField eventIconField = new CustomMenuField(eventIcon_hover,eventIcon, "TheatreScreen");
bar.add(eventIconField);
main.add(bar);
}
}
.
public class MyMainScreen extends MainScreen {
private CustomTabBar tab;
public MyMainScreen() {
...
tab = new CustomTabBar();
tab.buildBar(this);
...
}
}
Я думаю, что лучшим решением было бы изменить ваш класс для расширения с HorizontalFieldManager
вместо его инкапсуляции, например:
public class CustomTabBar extends HorizontalFieldManager {
public CustomTabBar(long style) {
super(style);
Bitmap eventIcon = Bitmap.getBitmapResource("eventsicon.png");
Bitmap eventIcon_hover = Bitmap.getBitmapResource("eventsicon-hover.png");
CustomMenuField eventIconField = new CustomMenuField(eventIcon_hover,eventIcon, "TheatreScreen");
add(eventIconField);
}
}
.
public class MyMainScreen extends MainScreen {
private CustomTabBar tab;
public MyMainScreen() {
...
tab = new CustomTabBar(...);
add(tab);
...
}
}