- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
ClassCastException随机出现,用于在onRestoreInstanceState()中恢复Vector。恢复vector一般都很好完成,但有时会出现异常。
我认为当 Activity 进入后台并被销毁时会发生这种情况,但我不确定。
有什么想法吗?谢谢。
Stack<LocationInfo> mLocationInfoVector;
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putSerializable("locationInfos", mLocationInfoVector);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
if (savedInstanceState.getSerializable("locationInfos") != null) {
@SuppressWarnings("unchecked")
mLocationInfoVector= (Stack<LocationInfo>) savedInstanceState.getSerializable("locationInfos");
}
super.onRestoreInstanceState(savedInstanceState);
}
添加:
我忘了附上异常日志。也就是
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Stack
最佳答案
我使用下一个代码来恢复 Vector:
objects = new Vector<Object>((Collection<Object>) state.getSerializable(EXTRA_OBJECTS));
它防止 java.lang.ClassCastException 并保存元素顺序。
要恢复堆栈,您可以使用下一个代码:
stack = new Stack<Object>();
stack.addAll((Collection<Object>) state.getSerializable(EXTRA_STACK));
之所以有效,是因为 Vector、Stack、ArrayList 正在扩展 Collection,您可以将序列化对象转换为 Collection 并传递给 Stack 或 Vector addAll() 方法。
关于android - ClassCastException 发生在 onRestoreInstanceState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11279911/
所以我对 onSaveInstanceState 和 onRestoreInstanceState 有一个奇怪的问题。以下是我到目前为止所拥有的,并且运行良好。方法正常调用,值保存和恢复都很好。 @O
我需要你的帮助。我正在制作一个应用程序,我使用方法 onSaveInstanceState() 和 onRestoreInstanceState(),但第二种方法不起作用。 当按下主页按钮时,我可以看
继续上一个问题 第一个屏幕 Activity 我正在单击一个按钮并执行此操作 Intent intent = new Intent(MainMenu.this, NewClass.class); in
我最近在使用 onSaveInstanceState() 和 onRestoreInstanceState() 时遇到了一些麻烦。我有多个 Activity 使用这些方法来保存状态,以防它们被系统清理
这个问题在这里已经有了答案: onSaveInstanceState () and onRestoreInstanceState () (13 个答案) 关闭 9 年前。 我对 Android 中的
我已经编写了所有需要的代码来保存我的 Activity 状态(一个带有 EditText 小部件的简单表单)并在手机旋转时恢复它,而且效果很好。 我的问题是管理屏幕开/关变化:关闭时,onSaveIn
我想在 App 进入 onPause 时保存 textView 的值。所以我实现了 onSaveInstanceState 和 onRestoreInstanceState。但如下面的 logcat
对不起,我的不理解,但我是android开发的新手。 我有一个包含 Activity A 和 Activity B 的应用程序,我从 Activity A 转到 Activity B。当我离开 Act
我是否遗漏了什么或 Fragment 没有 onRestoreInstanceState() 方法?如果没有,我该如何获得类似的东西? 最佳答案 fragment 没有 onRestoreInstan
当我在 listView 中输入某些内容并旋转它后,listView 返回 null 而不是我输入的文本。您能解释一下为什么会发生这种情况吗? override fun onRestoreInstan
情况是我想创建一个应用程序,每次单击按钮时它应该能够在 LinearLayout 中创建一个新的 TextView。来自EditText的文本被分配给所述TextView。我成功地做到了这一点。然而,
我对 Android 开发和 StackOverflow 都很陌生,我希望我问的不是一个愚蠢的问题,这个问题以前有人问过,但我在上面找不到任何东西。 我正在制作一个应用程序,它在连接到蓝牙设备时启动(
如何保存/恢复附加到 CursorAdapter 的 ListView 的状态?示例: 我有一个带有 3 个 ListView 的 Android Activity:国家、地区、城市。 它们附加到 3
我在一个计数程序中遇到了一个问题,该程序显示了诸如 onCreate、onStart 等方法被调用了多少次,当我从 Activity1 转到 Activity2 然后再回到 Activity1 时它似
我正在开发一个应用程序,当您转到屏幕时,您可以从 onCreate 中创建的对话框中选择您的位置。选择位置后,它会将其写入预定义的 TextView。我遇到的一个问题是,当屏幕方向发生变化时,它会重新
下面的 SwiperActivity,从 ActionBarSherlock 4.0.2 库扩展 SherlockFragmentActivity。我只能在加载不同的应用程序负载,然后切换回来后,在
ClassCastException随机出现,用于在onRestoreInstanceState()中恢复Vector。恢复vector一般都很好完成,但有时会出现异常。 我认为当 Activity
在我的应用程序中,在正常操作期间执行 onRestoreInstanceStatance 函数并在某些监听器中导致空指针异常,而无需调用该监听器。我的应用程序包含大量数据,我在 onPause 中写入
我正在尝试弄清楚 onSaveInstanceState/onRestoreInstanceState 如何与对话框一起工作。使用 Acitivity 很容易,因为它们会在 Activity 被终止/
我正在尝试在我的 Activity 中保存数据而不是恢复它。我将数据保存在 onSaveInstanceState() 中,然后尝试恢复 onRestoreInstanceState() 中的数据。
我是一名优秀的程序员,十分优秀!