Android:使用ViewPager时保存片段每个片段中每个视图的状态/内容

时间:2011-09-13 10:15:59

标签: android android-fragments android-viewpager

我真的非常需要在这里提供认真的帮助。 我正在创建一个Android应用,它使用PagerAdapterFragments中创建activity。不同的片段根据需要包含在运行时创建的不同视图。在最后一个片段中,我创建了一种"Submit button",在单击时,应该从所有片段中的每个视图(如EditText)中获取用户输入的值。

我使用以下命令获取视图(在上面提到的按钮clicklistener中):

EditText e = (EditText) (getActivity().findViewById(i));

但除了前两个片段之外,它没有使用该ID查看视图。 所以,我假设,它只保存该活动中最后两个片段的状态。 那么,如何保存活动中所有片段的'view states'

并不是这样,当在Fragment中创建视图并在其布局中添加视图时,该视图也会添加到主活动布局中?我是以错误的方式理解它吗?请让我知道。

为简化起见,我的问题是:

如何将用户输入的内容保存在使用ViewPager创建的Fragments中动态创建的EditText中(以便以后可以访问)?

1 个答案:

答案 0 :(得分:0)

将片段添加到FragmentPagerAdapter时(假设您没有编写自定义寻呼机),它会被添加到FragmentManager中。 Fragment管理器独立于活动生命周期,因此它保留了片段状态。

如果你看看这里:http://code.google.com/p/ratebeerforandroid/source/browse/trunk/JakeWharton-ActionBarSherlock/library/src/android/support/v4/app/FragmentPagerAdapter.java?spec=svn42&r=42

您可以了解它的工作原理。如果要为另一个会话保存片段状态,则需要拉回每个片段(getItem)并使用onSaveInstanceState或编写自己的自定义函数

希望有所帮助