gpt4 book ai didi

java - 是否可以在 onSaveInstanceState 中保存 Stack>

转载 作者:行者123 更新时间:2023-12-01 14:06:22 29 4
gpt4 key购买 nike

是否可以保存Stack<Stack<View>>onSaveInstanceState .

是否可以通过另一种方式保存某些特定数据来管理 Activity 状态?

最佳答案

您无法将 View 保存到 bundle 中。无论如何你都不应该这样做。如果重新创建 Activity,它将再次重新展开布局(如果配置发生更改,甚至会展开另一个布局)并创建一个新的 View 层次结构。

您应该将业务数据与 UI 分开并将其存储在 SaveInstanceState 上。 Activity 重新创建后,您应该获取该数据并相应地更新新的 View 层次结构。

例如,如果您有一个 TextView,它显示存储在字段 mSuperText 中的一些文本,并且您的 Activity 正在关闭,您应该将其保存到 onSaveInstanceState 中的包中:

@Override
protected void onSaveInstanceState(final Bundle outState) {
outState.putString("supertext", mSuperText);
}

当你的 Activity 被重新创建时,在你的 onCreate 方法中你会得到一个参数 onCreate(final Bundle savingInstanceState) ,它将是你之前存储的包。这样你就可以得到你需要的值:

@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
mSuperText = savedInstanceState.getString("superText");
}
}

关于java - 是否可以在 onSaveInstanceState 中保存 Stack<Stack<View>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18867386/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com