1

명령으로 대화를하고 있습니다. 이 명령은 대화 상자를 닫고 이전 양식으로 돌아 가야하지만 예상대로 작동하지 않습니다. 명령을 누르면 대화 상자가 닫히지 만 양식은 되돌아 가지 않습니다.LWUIT dispose()의 다이얼로그 문제

리소스 편집기를 사용 중입니다. 상태 머신은 앱의 탐색을 제어합니다.

command's 로직 내부의 코드는 다음과 같습니다

dialog.dispose();
StateMachine.back();

dispose() 내 대화 상자를 닫습니다 사용해야하는 방법인가?

읽어 주셔서 감사합니다.

+0

상태 시스템이란 무엇입니까? –

+0

StateMachine은 LWUIT Resource 편집기에서 생성 된 클래스입니다. 다른 것들 중에서도 앱의 탐색을 관리 할 수 ​​있습니다. – Mun0n

답변

2

을 사용하여 전화하지 말아 "다시()"처분하는 전화를 예상대로 작품() 논리 것으로 나옵니다.

표시 할 양식에 대해 postShow 메서드를 재정의하고 대화 상자를 떠나는 경우를 감지 할 수 있습니다 (돌아갈 필요가있을 때 플래그를 켜기 만하면 됨). 해당 조건에 양식이 표시되면 back 메서드를 호출합니다. .

+0

감사합니다. 보자! – Mun0n

2

NIRMAL 대화 상자를 폐기하는 동안 그래서 당신의 호출 이전의 형태로 이동 말했듯이 StateMachine.back() 그냥 dialog.dispose();

+0

이전 양식으로 되돌아 가야하기 때문에 StateMachine.back으로 전화해야합니다. 내 말은, 대화 상자를 닫고 양식으로 이전 양식으로 돌아 가야한다는 것입니다. 그러나 이것과 별개로. 처분을 호출하면 대화 상자는 닫히지 만 명령의 기능은 제대로 작동하지 않습니다. – Mun0n

2

다른 해결책이 있습니다. Form에 구현해야하는 protected void onShowCompleted() 메서드를 사용해보십시오. 그리고 Form (예 private boolean isDialogShown;을 위해), false에 변수를 부울, 그냥 Dialog을 여는 코드 전에 Form 세트의 다음 in the constructortrue에 값을 설정하여에 boolean 변수를 선언합니다. 그런 다음 protected void onShowCompleted() 테스트의 코드가 참인지 사실인지 확인한 다음 거짓으로 설정하고 다시 수행하십시오. backForm.showBack();