我正在尝试创建一个菜单屏幕,我希望能够创建它,以及动态地进行任何进一步的排列。我创建了一个MenuItem辅助类来处理显示的菜单项,它读取名称,图像,并设置下一个状态(稍后处理的东西)。我想知道的是,我如何创建特定的以下屏幕(它们都是我的Screen类的一些子类)?
将特定对象传递给menuItems的最有效方法是什么?我是否需要预先创建每个可能的屏幕,然后回读它的序列化形式,或者我可以动态创建它们。我希望能够做一些像文字字符串“new SubClass(...)”那样简单的事情并采取行动,但我不知道如何去做。任何其他建议都会很棒!
答案 0 :(得分:0)
如果我理解正确,你想要的是一种从文本文件中读取String命令的机制,并根据此命令显示一个屏幕。
因此,将“display screen”命令的界面解压缩到界面中。例如:
public interface ScreenDisplayer {
void displayScreen(Screen mainScreen);
}
然后构建Map<String, ScreenDisplayer>
:
map.put("screen1", new ScreenDisplayer() {
@Override
void displayScreen(Screen mainScreen) {
// TODO display screen 1
});
// same for all the other commands
点击“菜单项”后,从地图中获取DisplayScreen并调用它:
String command = selectedMenuItem.getCommand();
ScreenDisplayer displayer = map.get(command);
displayer.displayScreen(mainScreen);