2011-10-06 7 views

答えて

3

Screen.onExposed()が前の画面で呼び出され、そこから値を更新することができます。

+0

ありがとうございました。また、私は全ページをリフレッシュするためにどのようなイベントを呼び出す必要があるのか​​よく知っています。 – NCG

+0

私は 'Screen.onExposed()'がアスカーの適切なコールバックではないとAPIは 'この画面のアプリケーションがフォアグラウンドを受け取る"または 'グローバルスクリーンがポップされたときに呼び出されると言うので。 –

+0

本当に、尋ねられたのは正確ではありません。ただし、画面スタックに隠された画面を最新の状態に保つには、onExposedは実際に更新を行うのに最適なイベントです。また、このイベントを使用して、データの初期ロードと更新を1つの場所に結合することもできます。 –

2
class FirstScreen extends MainScreen { 

    private void refreshOnNextScreenClose() { 
     // some code to refresh the FirstScreen on NextScreen closure 
    } 

    private Runnable onNextScreenCloseCallback = new Runnable() { 
     refreshOnNextScreenClose(); 
    }; 

    // .. 
    // somewhere in the code where you create/push NextScreen 
    NextScreen nextScreen = new NextScreen(onNextScreenCloseCallback); 
    UiApplication.getUiApplication().pushScreen(nextScreen); 
    // .. 
} 

class NextScreen extends MainScreen { 

    private Runnable onCloseCallback; 

    public NextScreen(Runnable onCloseCallback) { 
     super(); 
     this.onCloseCallback = onCloseCallback; 
    } 

    public void close() { 
     super.close(); 
     if (onCloseCallback != null) onCloseCallback.run(); 
    } 
} 
+0

私は画面の斑点をリフレッシュする方法を知りたいです – NCG

+1

"画面の斑点をリフレッシュする"という意味はどういう意味ですか?単純に 'Field'を無効にするには、そのフィールドで' Field.invalidate() 'を呼び出してください。 –

関連する問題