我真的,真的需要你的帮助。我正在创建一个使用PagerAdapter
在activity
中创建Fragments
的安卓应用程序。不同的片段由不同的视图组成,这些视图根据需要在运行时创建。在最后一个片段中,我创建了一种"Submit button"
,当单击它时,应该从所有片段的每个视图(如EditText
)中获取用户输入的值。
我使用以下命令来获取视图(int上面提到的按钮clicklistener
):
EditText e = (EditText) (getActivity().findViewById(i));
但是它没有得到那个ID的视图,除了最后两个片段。因此,我假设它只保存该活动中最后两个片段的状态。那么,如何保存活动中所有片段的'view states'
??
和是不是这样,当一个视图被创建在一个片段,并在其布局中添加,该视图也添加在主活动布局?我理解错了吗?请让我知道。
简化一下,我的问题是:
我们如何保存由用户输入的内容,在动态创建的EditText片段中,使用ViewPager创建(以便以后可以访问)??
当你添加一个片段到FragmentPagerAdapter(假设你没有写一个自定义页)它被添加到FragmentManager。片段管理器独立于活动生命周期,因此它保留片段状态。
如果你看这里: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或编写自己的自定义函数
希望有帮助