0

メニュー画面を作成しようとしていますが、メニュー画面とそれ以降の順列を動的に作成できるようにしたいと考えています。表示されるメニュー項目を処理するMenuItemヘルパークラスを作成しました。このクラスは、名前、画像を読み取り、次の状態(後で処理されるもの)を設定します。私が知りたいのは、特定の次の画面を作成するにはどうすればよいですか(これらはすべて私のScreenクラスのサブクラスになります)?

特定のオブジェクトをmenuItemsに渡すための最も効率的な方法は何ですか?可能な各画面を事前に作成してから、シリアル化された形式で読み戻す必要がありますか、それとも動的に作成できますか?リテラル文字列「newSubClass(...)」を読み取ってそれを実行するのと同じくらい簡単なことを実行できることを望んでいましたが、その方法がわかりません。他の提案は素晴らしいでしょう!

4

1 に答える 1

0

私が正しく理解していれば、必要なのは、テキストファイルから文字列コマンドを読み取り、このコマンドに基づいて画面を表示するメカニズムです。

したがって、「displayscreen」コマンドのインターフェースをインターフェースに抽出します。例えば:

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 に答える