2011-07-28 5 views
2

onActivityResult를 사용하여 기본 제공 카메라를 시작하는 활동이 있습니다. 사진을 찍은 후, 나는 다시 내 사진으로 돌아가서 사진을 찍으려는 사용자에게 묻는 팝업을 보여줍니다. 그것은 잘 작동하지만 사진을 찍은 후 내장 카메라 응용 프로그램에서 "저장"버튼을 누르면 inmediatly 홈 버튼을 누릅니다. 응용 프로그램으로 돌아 가면 활동이 표시되지만 활성화되지는 않습니다. 표시되어야하는 팝업이 있지만 표시되지 않습니다. 뒤로 버튼을 누르고 팝업을 취소하면 내 활동이 다시 활성화되지만 팝업을 취소하는 사용자를 허용하지 않으므로이 문제가 발생하면 앱을 사용할 수 없으며 단지 종료해야합니다. ..경고 대화 상자가 표시되지만 보이지 않습니다.

질문은 대화 상자가 표시되면 항상 상단에 표시되도록하려면 어떻게해야합니까? 원인은 사용자가 그걸로 상호 작용을 기다리고, 활동 뒤에있는 것 같습니다 ...

고마워!

+0

http://stackoverflow.com/ 질문/13928591/a-strange-behavior-of-android-activities-fragments-and-intent 또한 비슷한 문제가 발생했습니다 ... – aProgrammer

답변

3

이 문제를 해결하는 가장 쉬운 방법은 활동 내 대화 상자의 수명을 추적하고 활동에 대해 onResumehide()/show()을 수행하는 것입니다. 이 솔루션은 한 번에 하나의 Dialog에 대해서만 작동하지만 필요한 경우 더 쉽게 적응할 수 있습니다.

1) 활동을 Dialog.OnDismissListener으로 구현하십시오.
2) Activity의 현재 Dialog의 인스턴스 변수를 추가 :

private Dialog currentDialog = null; 

3) onResume() 담기 :

if(currentDialog != null) { 
    currentDialog.hide(); 
    currentDialog.show(); 
} 

4) onCreateDialog()에서 만든 각 대화를 들어, 추가 :

dialog.setOnDismissListener(this); 
currentDialog = dialog; 

5) 마지막으로 다음을 추가하십시오.

@Override 
public void onDismiss(DialogInterface dialog) { 
    if(dialog == currentDialog) 
     currentDialog = null; 
} 

저를 위해 그것을 고치는 것처럼 보입니다.

1

대화 상자를 취소 할 수있는 것 같습니다. dialog.setCanceleabe(false)onResumedialog.show()으로 시도해보십시오 (활동을 다시 시작한 후 다시 볼 수 있도록하기 위해).

+0

답장을 보내 주셔서 감사합니다. 나는 네가 한 말을 시도했다. 예, 대화 상자는 취소 할 수 없지만 onResume에서 show 메서드가 호출 되더라도 화면에 표시되지 않습니다. – Finuka

0

오래된 질문, 나도 알아,하지만 당신은 제목을 추가해야합니다 를 레이아웃은 높이가 또는 0 * 0 다운 스케일 얻을 수있는 폭하지 않는 경우 -> 보이지 않는

관련 문제