2011-06-30 5 views
2

次のような状況でアプリがクラッシュする以外は、2つのボタンとスピナーを持つダイアログが表示されます: 。開始アクティビティ 2.アクティビティ:: showDialogでダイアログを表示する(onCreateDialogで作成) 3.スピナーをクリックしてリストを表示します 4.スピナーがAlertDialogを表示 5.デバイスを回転させます 6.クラッシュIllegalArgumentExceptionが発生しましたスピナーが開いている(リストアップしている)デバイスを回転させるとダイアログのAndroidスピナーがクラッシュする

アクティビティが消えてしまったことがわかりました。また、ダイアログが消えてしまいましたが、スピナーのAlertDialogが残っています。私はSpinner AlertDialogを却下するだけですが、Spinnerクラスのプライベートメンバーです(私はAndroidのソースコードをチェックしました)ので、アクセスする方法はありません。

あなたが活動にスピナーを移動する場合は、あなたが得る: 1.開始アクティビティをスピナー上 2.クリックし、リストを表示するように 3.スピナーはAlertDialog を置きます。4.デバイス 5.スピナーを回転させますAlertDialogが 6.活動は、私はどちらか一方のみと結論付けることができます

を回転表示されなくなり:あなたは、単にダイアログ(またはAlertDialog)上にスピナーを置くことになっていない 1、または 2.ダイアログのバグがありますまたはアクティビティ

誰もがこの問題にどのような知恵を持っていますか?マニフェストで

+0

スタックトレース? onRestoreの後にnull変数で何かをしようとしているように聞こえます。 – ethrbunny

+0

'スレッド[<1>メイン](サスペンド(例外はIllegalArgumentException))\t \t ViewRoot.doDie()行:2695 \t \t ViewRoot.handleMessage(メッセージ)ライン:1970 \t \t ViewRoot(ハンドラ).dispatchMessage(メッセージ)ライン:99 \t \t Looper.loop()行:144 \t \t ActivityThread.main(文字列[])ライン:4937 \t \t Method.invokeNative(オブジェクト、オブジェクト[]、クラス、クラス[]、クラス、INT、ブール値)行:使用不可[ネイティブメソッド] \t \t Method.invoke(オブジェクト、オブジェクト...)ライン:521 \t \t ZygoteInit $ MethodAndArgsCaller.run()行:868 \t \t ZygoteInit.main(String []型)ライン:626 \t \t NativeStart.main(文字列[])行:利用不可[ネイティブメソッド] ' – haemish

+0

残念ながら、バッククォートは改行を保持していないようです。私は画面の向きをロックすることで問題を回避しましたが、明らかにそれは汚れたハックであり、問​​題の1つの表現しか覆いません。 Spinner AlertDialogは、元のActivity(回転前)にアクセスしようとしている可能性がありますが、プライベートメンバーであるため、何をすべきか分かりません。次のステップは、ActivityとAlertDialogのコードを掘り下げることですが、今は時間がありません。 – haemish

答えて

1

、あなたの活動の宣言にこれを追加します。

android:configChanges="orientation" 
+0

これは実際の問題を解決しません。これは回避策です。修正ではありません。 –

0

私はPopupWindowと同じ問題がありました。このソリューションは、onDestroy()メソッドで

を呼び出すことです。

関連する問題