我有一個微調控制器下拉列表和更改方向的問題。微調控制器下拉列表和屏幕方向更改問題
在我的活動中,我顯示一個對話框,其中有兩個旋鈕。當向用戶顯示對話框並且用戶改變屏幕方向時,一切都正常 - 在我的onPause中,我只是簡單地關閉對話框。
如果用戶點擊微調框,在改變方向之前會向用戶顯示一個下拉列表。但是,當用戶沒有從下拉列表中選擇任何內容時,我遇到了一個錯誤,並且只是在更改方向之前將列表展開。
我已經嘗試了很多事情來解決這個問題(即spinner.setSelection(0)
在onSaveInstanceState()
等)。我的想法是在用戶不選擇項目並且發生方向更改時從代碼中關閉下拉列表。
的誤差約爲Android.WindowLeaked
:
E/WindowManager(2455): Activity pl.myapp.WebViewActivity has leaked window [email protected] that was originally added here
E/WindowManager(2455): android.view.WindowLeaked: Activity pl.myapp.WebViewActivity has leaked window [email protected] that was originally added here
E/WindowManager(2455): at android.view.ViewRoot.<init>(ViewRoot.java:247)
E/WindowManager(2455): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
E/WindowManager(2455): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
E/WindowManager(2455): at android.view.Window$LocalWindowManager.addView(Window.java:424)
E/WindowManager(2455): at android.app.Dialog.show(Dialog.java:241)
E/WindowManager(2455): at android.app.AlertDialog$Builder.show(AlertDialog.java:802)
E/WindowManager(2455): at android.widget.Spinner.performClick(Spinner.java:257)
E/WindowManager(2455): at android.view.View$PerformClick.run(View.java:8816)
E/WindowManager(2455): at android.os.Handler.handleCallback(Handler.java:587)
E/WindowManager(2455): at android.os.Handler.dispatchMessage(Handler.java:92)
E/WindowManager(2455): at android.os.Looper.loop(Looper.java:123)
E/WindowManager(2455): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/WindowManager(2455): at java.lang.reflect.Method.invokeNative(Native Method)
E/WindowManager(2455): at java.lang.reflect.Method.invoke(Method.java:521)
E/WindowManager(2455): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/WindowManager(2455): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/WindowManager(2455): at dalvik.system.NativeStart.main(Native Method)
此外,出現此錯誤:
D/AndroidRuntime(2455): Shutting down VM
W/dalvikvm(2455): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
E/AndroidRuntime(2455): FATAL EXCEPTION: main
E/AndroidRuntime(2455): java.lang.IllegalArgumentException: View not attached to window manager
E/AndroidRuntime(2455): at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
E/AndroidRuntime(2455): at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200)
E/AndroidRuntime(2455): at android.view.Window$LocalWindowManager.removeView(Window.java:432)
E/AndroidRuntime(2455): at android.app.Dialog.dismissDialog(Dialog.java:278)
E/AndroidRuntime(2455): at android.app.Dialog.access$000(Dialog.java:71)
E/AndroidRuntime(2455): at android.app.Dialog$1.run(Dialog.java:111)
E/AndroidRuntime(2455): at android.app.Dialog.dismiss(Dialog.java:268)
E/AndroidRuntime(2455): at android.widget.Spinner.onDetachedFromWindow(Spinner.java:86)
E/AndroidRuntime(2455): at android.view.View.dispatchDetachedFromWindow(View.java:6033)
E/AndroidRuntime(2455): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1158)
E/AndroidRuntime(2455): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
E/AndroidRuntime(2455): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
E/AndroidRuntime(2455): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
E/AndroidRuntime(2455): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
E/AndroidRuntime(2455): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
E/AndroidRuntime(2455): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
E/AndroidRuntime(2455): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)
E/AndroidRuntime(2455): at android.view.ViewRoot.dispatchDetachedFromWindow(ViewRoot.java:1630)
E/AndroidRuntime(2455): at android.view.ViewRoot.doDie(ViewRoot.java:2671)
E/AndroidRuntime(2455): at android.view.ViewRoot.handleMessage(ViewRoot.java:1948)
E/AndroidRuntime(2455): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(2455): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(2455): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(2455): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(2455): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(2455): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime(2455): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime(2455): at dalvik.system.NativeStart.main(Native Method)
編輯
SOLUTION:
最後我發現了什麼導致此* &#$%錯誤。在清單中,我有 android:configChanges =「orientation」,當我將其更改爲android:configChanges =「keyboardHidden | orientation」問題消失了!
Thx 4 help!
不幸的是,它不適合我。我改變了我的對話框程序,通過onCreateDialog運行。我在onPause中關閉了Dialog(xxx),並且在方向改變時微調控制器打開下拉列表時仍然出現錯誤。 – Bandzio 2011-03-09 08:39:01