2011-07-22 21 views
1

我相信我的問題是我有縱向模式的畫廊和橫向模式的列表視圖。他們都使用相同的適配器並在相同的視圖中。但是,在方向更改時,listview嘗試從庫中讀取信息並且程序崩潰。

圖庫在恢復時讀取列表的信息。這是無法讀取圖庫保存狀態的列表。我附上了下面的堆棧跟蹤,雖然它告訴我很少。任何你可以擺脫的光線都會有幫助!目標API是3.0 btw。

07-22 20:58:35.660: ERROR/AndroidRuntime(2191): FATAL EXCEPTION: main 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.awesome.OASAC/com.awesome.OASAC.OASACActivity}: java.lang.ClassCastException: android.widget.AbsSpinner$SavedState cannot be cast to android.widget.AbsListView$SavedState 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3096) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.ActivityThread.access$1600(ActivityThread.java:123) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:997) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.os.Handler.dispatchMessage(Handler.java:99) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.os.Looper.loop(Looper.java:126) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.ActivityThread.main(ActivityThread.java:3997) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at java.lang.reflect.Method.invoke(Method.java:491) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at dalvik.system.NativeStart.main(Native Method) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191): Caused by: java.lang.ClassCastException: android.widget.AbsSpinner$SavedState cannot be cast to android.widget.AbsListView$SavedState 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.widget.AbsListView.onRestoreInstanceState(AbsListView.java:1520) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.view.View.dispatchRestoreInstanceState(View.java:8101) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.view.ViewGroup.dispatchThawSelfOnly(ViewGroup.java:1972) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.widget.AdapterView.dispatchRestoreInstanceState(AdapterView.java:766) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:1958) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.view.View.restoreHierarchyState(View.java:8080) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.Fragment.restoreViewState(Fragment.java:516) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:742) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:921) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:904) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:1579) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.Activity.performStart(Activity.java:4320) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1709) 
07-22 20:58:35.660: ERROR/AndroidRuntime(2191):  ... 12 more 
+0

你最終如何解決這個問題?你能發表一些實際的例子嗎? –

回答

2

想必,你有兩個Gallery和名稱相同的ListView。正如你所發現的那樣,你無法安全地做到這一點。將他們的名字改爲不同的名字。您還需要覆蓋onSaveInstanceState()onRestoreInstanceState()以在兩個實例狀態之間進行轉換(除了鏈接到每個方法的超類以繼承默認行爲外)。

相關問題