2011-07-22 3 views
1

mon problème, je crois, est que j'ai une galerie en mode portrait et une liste en mode paysage. Ils utilisent tous les deux le même adaptateur et dans la même vue. Cependant, lors d'un changement d'orientation, la listview tente de lire les informations de la galerie et les plantages du programme.

La galerie lit correctement les informations de la liste lors de la restauration. C'est la liste qui ne peut pas lire l'état de sauvegarde de la galerie. J'ai joint la trace de la pile ci-dessous, même si cela me dit très peu. Toute lumière que vous pourriez jeter serait utile! L'API cible est 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

Comment avez-vous finalement résolu ce problème? Pouvez-vous poster un exemple de travail? –

Répondre

2

On peut supposer que vous avez à la fois la Gallery et la ListView porte le même nom. Vous ne pouvez pas faire cela en toute sécurité, comme vous l'avez découvert. Changez un de leurs noms en quelque chose de distinct. Vous devrez également remplacer onSaveInstanceState() et onRestoreInstanceState() pour convertir vous-même les deux états d'instance (en plus de chaîner la super-classe de chacune de ces méthodes pour hériter du comportement par défaut).

Questions connexes