0

我正在尝试创建一个菜单屏幕,我希望能够创建它,以及它的任何进一步的动态排列。我创建了一个 MenuItem 帮助器类来处理显示的菜单项,它读取名称、图像并设置下一个状态(稍后处理)。我想知道的是,如何创建特定的以下屏幕(它们都将是我的屏幕类的某个子类)?

将特定对象传递到 menuItems 的最有效方法是什么?我是否需要预先创建每个可能的屏幕,然后以它的序列化形式回读,或者我可以动态创建它们。我希望能够做一些简单的事情,比如阅读文字字符串“new SubClass(...)”并采取行动,但我不知道该怎么做。任何其他建议都会很棒!

4

1 回答 1

0

如果我理解正确,您想要的是一种从文本文件中读取字符串命令并基于此命令显示屏幕的机制。

因此,将“显示屏幕”命令的界面提取到一个界面中。例如:

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);
于 2012-04-30T14:29:38.620 回答