-1

我正在使用 ViewPager 和 FragmentManager 来填充一些 EditText 并单击下一步按钮继续。但是当我点击上一个按钮回到最后一个片段时,表单里面的信息就丢失了,因为我总是像这样重新实例化每个片段:

 void previousFragment(){

    Fragment newFragment = new RegisterLink_();
    final FragmentManager fm = getActivity().getSupportFragmentManager();
    final FragmentTransaction ft = fm.beginTransaction();

    ft.setCustomAnimations(R.anim.in, R.anim.out);
    ft.replace(R.id.register_upload, newFragment);
    ft.addToBackStack(null);
    ft.commit();
   }
}

有人可以告诉我如何从一个片段滑动到另一个片段而不会丢失用户插入的信息。感谢您的帮助,并为我的英语不好感到抱歉。

4

3 回答 3

2

当您在片段之间导航时,为了在这种情况下保留数据,您可以执行以下操作

  1. 有一个全局变量来保存数据,所以当你导航时,你仍然有用户输入的数据
  2. 或者在切换片段之前,将数据包装到包中并使用 setArgument 方法传递给下一个片段,您可以在下一个片段中通过 getArgument 检索。

因此,当您保留数据时,通过上述任何方法,您始终可以使用用户输入的正确值初始化所有表单字段。

于 2013-12-10T09:20:26.097 回答
0

如果您想使用按钮返回上一个片段,只需在您的按钮上添加以下代码:

void previousFragment(){
getFragmentManager().popBackStack();
            getFragmentManager().executePendingTransactions();
}

然后您就不会丢失对上一个片段的最后一次编辑

于 2014-01-27T07:31:11.230 回答
0

在调用前一个片段之前,您必须从当前片段中提取数据。在片段中创建一个为您提供该值的方法。

FragmentManager fragmentManager = getFragmentManager();
YOUR_FRAGMENT f = (YOUR_FRAGMENT)fragmentManager.findFragmentByTag(THE_TAG);
f.theNewMethod(); // store this!
于 2013-12-10T09:19:10.070 回答