2011-10-06 6 views

답변

3

Screen.onExposed()이 이전 화면에서 호출되며 여기에서 값을 새로 고칠 수 있습니다.

+0

고마워요. 또한 전체 페이지를 새로 고치려면 어떤 이벤트가 필요한지 알고 싶습니다. – NCG

+0

'Screen.onExposed()'가 Asker에 대한 올바른 콜백이라고 생각하지 않습니다. 왜냐하면 API는'이 화면의 애플리케이션이 포 그라운드를 받거나 '글로벌 스크린이 팝되었을 때 호출되기 때문입니다. –

+0

사실 무엇을 요구했는지 정확하게 알 수는 없습니다. 그러나 화면 스택에 숨겨진 화면을 최신 상태로 유지하려면 onExposed가 업데이트를 수행하는 가장 좋은 이벤트입니다. 또한이 이벤트를 사용하여 데이터의 초기로드 및 업데이트를 한 곳으로 결합 할 수 있습니다. –

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()'를 호출하면됩니다. –

관련 문제