从返回堆栈恢复片段时的savedInstanceState

2024-03-17

我可以用吗savedInstanceState()删除片段时保存状态,然后从返回堆栈弹出片段时恢复状态?当我从返回堆栈恢复片段时,savedInstanceState 包始终为空。

现在,应用程序流程是:创建片段 -> 删除片段(添加到后台堆栈) -> 从后台堆栈恢复片段(savedInstanceState 包为空)。

这是相关代码:

public void onActivityCreated(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Bundle bundle = getArguments();
    Long playlistId = bundle.getLong(Constants.PLAYLIST_ID);
    int playlistItemId = bundle.getInt(Constants.PLAYLISTITEM_ID);

    if (savedInstanceState == null) {
       selectedVideoNumber = playlistItemId;
    } else {
       selectedVideoNumber = savedInstanceState.getInt("SELECTED_VIDEO");
    }
}

public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt(Constants.SELECTED_VIDEO, selectedVideoNumber);
    }

我认为问题在于onSavedInstanceState()当被删除并添加到返回堆栈时永远不会被调用。如果我无法使用 onsaveInstanceState(),是否有其他方法可以解决此问题?


(不幸的是)在片段的正常返回堆栈重新创建中不会调用 onSaveInstanceState。查看http://developer.android.com/guide/components/fragments.html#Creating http://developer.android.com/guide/components/fragments.html#Creating和答案添加到返回堆栈时如何维护片段状态? https://stackoverflow.com/questions/11353075/how-can-i-maintain-fragment-state-when-added-to-the-back-stack

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从返回堆栈恢复片段时的savedInstanceState 的相关文章

随机推荐

  • 负数组索引

    我有一个指针 定义如下 A b 按如下方式访问它会做什么 A c b 1 是否因为我们对数组使用负索引而导致访问冲突 或者是类似的合法操作 b EDIT请注意 负数组索引在 C 和 C 中具有不同的支持 因此 this https stac
  • 与 virtualenvs 和 Python 包的混淆

    在我的 python 程序中 使用 python3 5 由 virtualenv 运行 我需要使用 Pillow 库来处理图像 导入错误 没有名为 Pillow 的模块 告诉我 Pillow 没有安装在 virtualenv 中 但是 当我
  • Python的hashlib.sha256(x).hexdigest()相当于Rs摘要(x,algo =“sha256”)

    我不是Python程序员 但我正在尝试将一些Python代码转换为R 我遇到问题的Python代码是 hashlib sha256 x hexdigest 我对此代码的解释是 该函数将使用 sha256 算法计算 x 的哈希值并返回十六进制
  • 在 Dataflow Python flex 模板中包含另一个文件 ImportError

    是否有一个包含多个文件的 Python Dataflow Flex 模板示例 其中脚本导入同一文件夹中包含的其他文件 我的项目结构是这样的 pipeline init py main py setup py custom py 我正在尝试将
  • 按代码排序列表,然后按名称排序

    我有一个对象列表 我通过编写以下行按代码对此列表进行排序 Result Sort delegate Position p1 Position p2 return p1 Code CompareTo p2 Code 但我想首先按代码排序此行
  • @InjectMocks 之后为空

    在使用 JUnit 进行单元测试时 我在传递依赖项时遇到了一些麻烦 考虑这些代码 这是对我想要测试的类的依赖注入 我们称之为控制器 Inject private FastPowering fastPowering 这是单元测试 RunWit
  • 将gradle多项目转换为springboot fat jar应用

    我有一个 http servlet 应用程序多项目分级构建 我的项目是一个包含gradleHttpServlet 项目它依赖于其他两个 gradle java 项目 我将所有 3 个 jar 部署在tomcat webapps Web IN
  • toDataURL HTML5 获取画布数据的其他方式存在问题?

    我正在使用画布预先绘制图片 然后需要使用 Canvas toDataURL 将其保存到图像对象 但在 Chrome 上 我收到错误 未捕获的安全错误 无法在 HTMLCanvasElement 上执行 toDataURL 受污染的画布可能不
  • 我正在使用依赖注入:我应该将哪些类型绑定为单例?

    关于单例是否 不好 以及应该使用什么模式存在很多问题 他们通常关注单例设计模式 其中涉及从类的静态方法中检索单例实例 这不是这些问题之一 自从几个月前我真正 发现 依赖注入以来 我一直在推动它在我们团队中的采用 随着时间的推移从我们的代码中
  • read.csv() - 三列中的两列[重复]

    这个问题在这里已经有答案了 可能的重复 只读取 R 中有限数量的列 https stackoverflow com questions 5788117 only read limited number of columns in r 我有一
  • 使用 A* JPS 进行 3D 搜索

    我该如何概括跳转点搜索 http harablog wordpress com 2011 09 07 jump point search 3D 搜索量 到目前为止 我已经定义了涉及三个运动的 3D 立方体的修剪规则 直线 0 0 1 一阶对
  • 为什么在泛型类(Java)的构造函数中提供类型参数是错误的?

    我刚刚从一本教科书中学习 Java 中的泛型 其中讨论了一个类GenericStack
  • 如何使用 ICU4C 规范化字符串?

    我发现 ICU 文档有些挑战性 我的问题是 如何使用 ICU4C 规范化字符串 我正在查看 unorm2 normalize 但是如果缓冲区不够大怎么办 我以前怎么知道这一点 当然 我想标准化整个字符串 谢谢 gt 附 以下是该函数的 AP
  • 如何以编程方式更改 ActionBar 菜单项文本颜色?

    我有一个包含多个项目的操作栏 我想在单击该项目时更改文本的颜色 有没有办法以编程方式执行此操作 请提供示例或任何资源 Thanks public void catalogClick MenuItem item highlight menui
  • Scala 可变选项?

    我想要这样的东西 private val cachedResponse mutable Option empty A def get A cachedResponse getOrElseUpdate db findModel def upd
  • 基于非类型模板参数的重载

    我们熟悉基于函数参数的重载 但是为什么我们不能基于非类型模板参数进行重载呢 通过这种重载 您不必仅仅为了重载目的而添加额外的函数参数 这可能会对运行时性能产生负面影响 唉 下面的代码无法编译 template
  • jQuery 模拟点击选项卡并执行代码

    下面的代码 当我单击选项卡时 我会发布帖子并在选项卡中显示结果 在某些情况下 我想强制选择选项卡 但不仅选择该选项卡 而且选择该选项卡 执行单击它时执行的代码 在我的示例中 我喜欢选择第二个选项卡 jLikeToSet 1 并执行代码 po
  • 如何将一个android studio项目合并到另一个android studio项目中

    我有两个独立的 android 应用程序项目 它们是在 android studio 中制作的 我正在尝试将项目 1 合并到项目 2 中 使其成为一个应用程序 我将如何去做呢 我知道如何在 eclipse 中执行此操作 但不知道如何在 an
  • 使用 dart::ffi 从 Dart 包中调试 C++ 代码

    我正在用 C 开发一个包 用于 Flutter 应用程序 因此在 Dart 中 使用飞镖 菲菲 https dart dev guides libraries c interop我想知道除了记录消息之外 是否有更好的方法来调试 逐步 变量监
  • 从返回堆栈恢复片段时的savedInstanceState

    我可以用吗savedInstanceState 删除片段时保存状态 然后从返回堆栈弹出片段时恢复状态 当我从返回堆栈恢复片段时 savedInstanceState 包始终为空 现在 应用程序流程是 创建片段 gt 删除片段 添加到后台堆栈