- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我认为,我的问题是我有一个纵向模式的图库和一个横向模式的 ListView 。他们都使用相同的适配器并在相同的 View 中。但是,在方向更改时, ListView 会尝试从图库中读取信息并且程序会崩溃。
库在恢复时可以很好地读取列表的信息。它是无法读取图库保存状态的列表。我附上了下面的堆栈跟踪,尽管它告诉我的很少。您可以发出的任何光线都会有所帮助!顺便说一句,目标 api 是 3.0。
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
最佳答案
据推测,您将 Gallery
和 ListView
命名为相同。正如您所发现的那样,您不能安全地这样做。将其中一个名字更改为不同的名字。您还需要覆盖 onSaveInstanceState()
和 onRestoreInstanceState()
以自己在两个实例状态之间进行转换(除了从这些方法中的每一个链接到父类(super class)以继承默认行为)。
关于android - AbsSpinner$SavedState 无法转换为 AbsListView$SavedState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6796161/
我认为,我的问题是我有一个纵向模式的图库和一个横向模式的 ListView 。他们都使用相同的适配器并在相同的 View 中。但是,在方向更改时, ListView 会尝试从图库中读取信息并且程序会崩
我有 2 个类 ParentClass 和 ChildClass: ParentClass 是 RelativeLayout 的子类,它使用以下代码使用 onSaveInstanceState()/o
我正在努力寻找有关 stateSaver/savedState 字典如何用于 Windows 安装程序的文档,在安装和卸载覆盖中,有人可以提供帮助。 在我的安装程序 CustomAction 中,我一
我需要使用 AndroidViewModel带有应用程序上下文和 SavedStateHandle .我已经将它与应用程序上下文一起使用,但我无法添加 SavedStateHandle给它。 这就是我
我正在关注谷歌的这个 Codelab,但它无法保存数据。这是链接 https://codelabs.developers.google.com/codelabs/android-lifecycles/
我有一个扩展 CoordinatorLayout 的自定义 View 我正在重写 onRestoreInstanceState 和 onSaveInstanceState 使用类扩展 BaseSave
java.lang.IllegalArgumentException:错误的状态类,需要查看状态但收到的是 class android.widget.CompoundButton$SavedState
我已按照 Google Codelab 中有关保存状态模块的说明进行操作。 我的gradle依赖是: implementation "androidx.lifecycle:lifecycle-view
我正在使用 Maps API 创建一个简单的 Android 应用程序,但我遇到了一个我无法解决的奇怪错误。它通常发生在我旋转我的设备时。我正在使用谷歌服务 8.4.0 4-23 15:39:47.5
我正在使用 android studio 开发我的 android full c++ 游戏,我使用了来自 google samples (native-activity) 的代码。一切正常。但是当我点
我在 Crashlytics 上经常看到以下错误: Caused by java.lang.ClassCastException: android.view.AbsSavedState$1 canno
我在 Android 崩溃报告中看到以下错误: android.os.BadParcelableException: ClassNotFoundException when unmarshalling
我在 Android 崩溃报告中看到以下错误: android.os.BadParcelableException: ClassNotFoundException when unmarshalling
我的 android 应用程序的生产 apk 中出现以下异常已有 1 天了: java.lang.RuntimeException: Unable to start activity Componen
当我的应用程序从后台转到前台时,它经常崩溃。 Scenerio:假设我正在玩任何游戏并且我的应用程序在最近的列表中并且玩完后,如果我选择应用程序,它会崩溃并显示错误。我的应用程序中没有工具栏,只有我使
我是一名优秀的程序员,十分优秀!