繁体   English   中英

如何从ViewPager收集数据?

[英]How can I gather data from my ViewPager?

我做了一个活动,它只是一个带有几个标签的viewpager。 每个选项卡都像用户需要填写的表单。 用户完成后,应收集来自视图寻呼机的数据并将其作为结果发回。 我几乎有这个工作,但由于某种原因,当用户进入第三个选项卡时,我的第一个选项卡上的数据似乎被重置。 我猜这是由于寻呼机中的某些视图回收。 无论如何,我想知道是否有一些简单的方法来收集不同标签中的所有数据,或者我是否必须在activity和viewpager对象之间创建某种紧密耦合?

您必须使用SmartFragmentStatePagerAdapter,如此处所述“ https://guides.codepath.com/android/ViewPager-with-FragmentPagerAdapter ”并且需要

vpPager.setOffscreenPageLimit(3);

你的问题应该得到解决。 :)

如果距离当前页面2页,则viewpager将终止该片段。 然后,当寻呼机位于距离它1步的页面上时,它会重新创建它。

您应该将表单数据移动到持有viewpager的activity / fragment中,并使用片段侦听器相应地更新数据

例如,您可以使用如下所示的片段侦听器将数据传递到包含活动或从包含活动传递数据

public interface MyFragmentListener{
    void saveMyFormData(MyFormData formData);
    MyFormData getFormData();
}
private MyFragmentListener mListener;

//initialise fragment listener in onAttach (or elsewhere)

private void initFormView(){
    MyFormData data = mListener.getFormData();
    //do stuff with data
}

private void saveData(){
    mListener.saveMyFormData(myFormDataObject);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM