2016-12-14 10 views
2

新しいGUIビルダーのベストプラクティスは、単に「フォームA」から「フォームA」にナビゲートするだけで、 「フォームA」のボタンをクリックし、アクションイベントを使用してフォームBを作成しますか?私はこのコードネーム1 - アクションイベントと新しいGUIビルダーでフォームAからフォームBにナビゲートし、BからAに戻る

public void oncreateAccountActionEvent(com.codename1.ui.events.ActionEvent ev) { 
     new FormB().show(); 
    } 

のようにフォームAの内側にフォームBを作成した場合

は、その後、私は明らかに私がnew FormB().show()を行う前にメインクラス(メソッドを破壊し、停止、開始)の内側からフォームBを変更することはできませんよ。この場合、new FormA().show();はメインクラスのstart-methodにあります。

私は仕様にしたいと思っています。 Form Bに戻るボタンをForm Aに戻すには、これをMainクラスのstartメソッドの中に追加します。

ありがとうございます!

編集: - 私はnew FormA().show()を行い、このクラスでは、

は私がメインクラスを持っている(メソッドを開始(と)、停止()、()を破壊)。

FormAのクラスの中には、new FormB().show()でFormBを示すoncreateAccountActionEventのメソッド(とボタン)があります。

は、しかし、私は、メインクラス内のFormBのツールバーに(formB.setBackCommand()を指定できるようにしたいので

は私が new FormA/B()でメインクラスの両方の形式を指定したいと言って - 。その後、同様の形式を変更しますツールバーにボタンを追加して、FormAにアクションイベントメソッド内でFormBを使用するよう指示します。

答えて

0

私は前に、単純にメインクラスでoncreateAccountActionEvent -methodをオーバーライドして、まだformBを作成および変更することができるということで私の問題への明白な解決策に来た:

Form formB= new FormB(); 
// Modifying formB 
formB.setBackCommand(backCommand); 
... 

//Create formA and show the modified formB on button click 
FormA formA= new FormA() { 
    @Override 
    public void oncreateAccountActionEvent(ActionEvent ev) { 
     //Navigate to FormB 
     formB.show(); 
    }; 
}; 

とバックformBからフォーマへナビゲートするため私はformBのクラスのshow() -methodを実装することによって、前のフォームの参照を保持するために、この解決策を見つけた:

private Form previous; 
... 

public void show() { 
     previous = Display.getInstance().getCurrent(); 
     super.show(); 
} 
... 
//go to the form before 
public void goBack(){ 
     previous.showBack(); 
} 

たぶん、これはあまりにも、他の誰かを助けます。

3

showBack()メソッドを使用してFormBからFormAに戻ります。前/次のフォームインスタンスに移動します。

FormA formA = new FormA(); 
FormB formB = new FormB(); 

public void oncreateAccountActionEvent(com.codename1.ui.events.ActionEvent ev) { 
    formB.show(); 
} 

public void showFormA(){ 
    formA.showBack(); 
} 
+0

答えに小さな改良を加え、 'formB()'を修正しました –

+0

答えに感謝しますが、私の質問に完全には答えられません。 より正確に私の答えを更新しました。 – socona

+1

前のフォームインスタンスへの参照を保持するヒントを与えてくれてありがとう! – socona

関連する問題