保存片段中多个视图的状态

时间:2014-02-01 18:19:15

标签: android android-fragments android-edittext savestate

我有一个片段,有几个视图。其中两个是自定义的:我们称之为FrameLayoutAFrameLayoutB。问题是FrameLayoutB在我返回片段时没有保存它的状态。

onSaveInstanceState / {{1}没有调用/重载的onRestoreInstanceState / setRetainInstance / onRetainNonConfigurationInstance / getLastNonConfigurationInstance / FrameLayoutA方法}类和片段的类。

找不到保存一个视图状态而另一个视图保存状态的原因。有任何想法吗?我错过了什么吗?

更新

FrameLayoutB停止调试,显然我的恢复值在onCreateView() - > inflater - > mChildFragmentmSavedViewState的类型为inflater。仍在寻找答案,为什么有些观点被保存,而其他观点却没有。

更新

所以有两个我的自定义视图,它们在其中扩展了相同的布局。布局具有声明了ID的EditTexts。因此org.holoeverywhere.LayoutInflater正在从第二个视图中的值恢复两个视图的值。因此,当我回到片段时,我的两个自定义视图都具有相同的值。

1 个答案:

答案 0 :(得分:0)

如果你想改变片段,你可以这样做:

getSupportFragmentManager().beginTransaction()
                .addToBackStack(Fragment.class.getName())
                .**add**(R.id.content_fragment, fragment, Fragment.class.getName())
                .commit();

致电"添加"而不是"取代"当你回到原始片段时,片段的状态就可以了。

这项工作对我来说,希望对它有所帮助:)