2017-09-23 1 views
0

나는 alertdialog에 스피너를 가지고 있습니다. alertdialog가 표시되고 화면 방향이 변경된 경우 - 모든 사항이 정상입니다. Alertdialog 여전히 표시합니다. 그러나 회 전자가 열려 있고 화면 방향이 변경되면 응용 프로그램이 윈도우 관리자에 연결되지 않은 상태로 중단됩니다. onDestroy에서 alertdialog.dismiss()를 시도했지만 성공하지 못했습니다. 어떤 아이디어?Android : alertdialog의 회 전자가 충돌했습니다.

LayoutInflater li = LayoutInflater.from(ScrollingActivity.this); 
View promptsView = li.inflate(R.layout.popup_layout, null); 
AlertDialog.Builder alertDialogBuilder = new 
AlertDialog.Builder(ScrollingActivity.this, R.style.MyAlertDialogStyle); 

alertDialogBuilder.setView(promptsView); 

alertDialogBuilder.setTitle(R.string.def_recipe_lang); 
alertDialogBuilder.setIcon(R.drawable.ic_language_orange_24px); 
// create alert dialog 
alertDialog = alertDialogBuilder.create(); 
alertDialog.show(); 
alertDialog.setCanceledOnTouchOutside(false); 

오류 : 09-23 15 : 06 : 27.745 15519-15519/com.example.user.coordinatortest E/AndroidRuntime : 치명적인 예외 : 주요 java.lang.IllegalArgumentException가 :보기 연결되어 있지 android.view.WindowManagerGlobal.findViewLocked (WindowManagerGlobal.java:385)에서 창 관리자에게 android.view.WindowManagerGlobal.removeView (WindowManagerGlobal.java:287)에서 android.view.WindowManagerImpl.removeView (WindowManagerImpl.java:79) android.app.Dialog.dismissDialog (Dialog.java:323) android.app.Dialog.dismiss (Dialog.java:306)의 android.widget.Spinner의 $ DialogPopup.dismiss (Spinner.java:840) android.widget.Spinner.onDetachedFromWindow (Spinner.java:414) android.support.v7.widget.AppCompatSpinner.onDetachedFromWindow (AppCompatSpinner.java:399) at android.view.View.dispatchDetachedFromWindow (View.java:12024)) android.view.View.View.View.ViewGrou (ViewGroup.java:2612)의 의 android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:2610) 의 android.view.ViewGrou p.dispatchDetachedFromWindow (ViewGroup.java:2610) android.view.View.View.View.View.DepatchDetachedFromWindow (ViewGroup.java:2610) at android.view.View.View.DavailabilityFromWindow (ViewGroup.java:2610) android.view.ViewGroup. android.view.ViewRootImpl.dispatchDetachedFromWindow에서 android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:2610) 에서 android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:2610) 에서 dispatchDetachedFromWindow (ViewGroup.java:2610) (ViewRootImpl.java:2950) android.view.ViewRootImpl.doDie (ViewRootImpl.java:4535) android.view.V iewRootImpl $ ViewRootHandler.handleMessage (ViewRootImpl.java:3318) android.os.Handler.dispatchMessage (Handler.java:107) at android.os.Looper.loop (Looper.java:194) android.app에 있습니다. ActivityThread.main (ActivityThread.java:5431) at java.lang.reflect.Method.invokeNative (네이티브 메소드) at java.lang.reflect.Method.invoke (Method.java:525) at com.android.internal dalvik.system.NativeStart.main에서 com.android.internal.os.ZygoteInit.main (ZygoteInit.java:600) 에서 .os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:833) (기본 방법)

+1

코드를 통해 디버깅을 시도 했습니까? 아니면 logcat을보고 있습니까? –

+1

pls는 경고 상자 –

답변

0

"onDestroy에서 alertdialog.dismiss()를 시도했습니다."---- 이것은 맞았지만 Ondestroy()가 아닌 Onpause()에서 수행해야합니다.

Ondestroy는 오리엔테이션 변경이 아니라 화면을 파괴 할 때 실행됩니다.

오류가 발생하면 적절한 답변을 위해 코드 및 Android 모니터 오류를 게시하십시오.

+0

onPause에 대한 코드를 게시해도 도움이되지 않습니다. 방향 변경에 대한 라이브 사이클은 다음과 같습니다 onSaveInstanceState onPause 중지시 들의 OnDestroy 에서 onCreate ONSTART onRestoreInstanceState onResume. –

관련 문제