0

我是android编程的新手。

我只是尝试保存ListView片段中的状态。为此,我遵循无头片段(没有 UI 的片段)。在这个片段中,我保存了在 中使用的数据,ListView并从主片段(具有 UI 的片段)开始无头片段。

现在我得到了例外:

java.lang.IllegalStateException: Failure saving state: RetainedFragment{4161f850 #1 work} has target not in fragment manager: JobOpeningFramgent{41601c00}

就我而言,当我试图用DrawerLayout.

请仔细分析此异常的原因,以便更好地理解。

谢谢。

嘘声。

4

2 回答 2

2

Here's a workaround:

put this in the fragment that causes the problems:

@Override
public void onSaveInstanceState(final Bundle outState) {
    setTargetFragment(null, -1);
            ...

and remember to set it to the real target fragment when you need it.

于 2014-05-01T13:21:52.370 回答
0

我不确定您要保存什么以及要保存在哪里。

官方文档指出:“Fragment 代表 Activity 中的一种行为或用户界面的一部分。”

使用 aFragment作为另一个 Fragment 的 UI 状态的容器通常是个坏主意。

如果您想在整个活动生命周期(包括屏幕旋转)中保留一些值,只需覆盖onSaveInstanceState方法。如果您想在活动生命周期后存储一些变量,请使用 singelton 类或Preferences,并且如果您想在应用程序生命周期使用后存储您的值SharedPreferences

请详细说明您到底想要什么

于 2013-08-27T06:52:27.623 回答