gpt4 book ai didi

android - 使用兼容性库时 setRetainInstance 不适用于 ListFragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:01 26 4
gpt4 key购买 nike

我试图在方向更改时保存一个 ListFragment 子类,因此我将 setRetainInstance(true) 添加到我的 onCreate 函数的末尾。我添加了一个 onSaveInstanceState 方法以将其所有数据添加到一个包中,然后将代码添加到 onActivityCreated 中以加载该数据。不幸的是,它行不通。

当我在 Log.d 的帮助下添加一些调试消息时,我发现不仅没有调用 onSaveInstanceState,而且调用了 onCreate(文档似乎说当 retainInstance 为真时不应该发生)。 onCreate 和 onActivityCreated 都没有 bundle 我的数据(不出所料)。

我猜这可能是兼容性库的问题,尽管我没有 android 3.0+ 设备来测试它。

感谢任何帮助,如有必要,我可以发布一些代码 fragment ,但我不会做任何复杂的事情。

更新:当我改变方向时,onDestroy 没有被调用(它应该是这样的),所以似乎 setRetainInstance 的一些正在工作

最佳答案

我终于明白我的问题是什么了。这一切都归结为我忘记添加的一行。在我的 FragmentActivity 子类中,我覆盖了 onSaveInstanceState,但我从未调用过 super.onSaveInstanceState。显然,与我忘记调用其父类的其他方法不同,当我忘记调用它的父类版本时,onSaveInstanceState 不会抛出运行时错误,而 setRetainInstance 只是停止工作。我希望这可以避免有人因为我试图解决这个问题而头疼。

关于android - 使用兼容性库时 setRetainInstance 不适用于 ListFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6906531/

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