2017-09-23 6 views
0

私はalertdialogでスピナーを持っています。 alertdialogが表示され、画面の向きが変更された場合 - すべて正常です。 Alertdialogはまだ表示されます。しかし、スピナーが開いていて画面の向きが変更されていると、ウィンドウマネージャにViewが添付されていないアプリがクラッシュします。私は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); 

エラー: 9月23日15:06:27.745 15519から15519/E/AndroidRuntime com.example.user.coordinatortest:致命的な例外:メイン 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) android.view.View.dispatchDetachedFromWindow(View.java:12024)にあります。 )android.view.View.View.ViewGrouの (ビューグループ.java:2610) p.dispatchDetachedFromWindow android.view.ViewGroupでandroid.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2610)でandroid.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2610) で(ViewGroup.java:2610) 。 dispatchDetachedFromWindow(ViewGroup.java:2610)android.view.ViewRootImpl.dispatchDetachedFromWindowでandroid.view.ViewGroup.dispatchDetachedFromWindowでandroid.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2610) (ViewGroup.java:2610) (AT ViewRootImpl.java:2950) android.view.ViewRootImpl.doDie(ViewRootImpl.java:4535) android.view.V android.os.Handler.dispatchMessage(Handler.java:107)のの画像ビューアのViewRootHandler.handleMessage(ViewRootImpl.java:3318)android.os.Lookup.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も役立ちません。姿勢変更のためのLiveCycleは、次のとおりです。onSaveInstanceState onPause onStop onDestroy のonCreate ONSTART onRestoreInstanceState onResume。 –

関連する問題