切换片段时保持片段输入

时间:2014-10-30 10:34:29

标签: android android-fragments android-lifecycle

我有4个标签,上面有一个片段。当我从片段2切换到任何其他片段时,我想保持片段状态(它具有用于将项目上传到服务器的输入字段)。

我尝试过使用 addToBackStack ,但最终会有所有片段让它能够保持片段2的状态。

这就是我想要的:

Fragment 1 = home
Fragment 2 = upload
Fragment 3 = edit
Fragment 4 = support

2 -> 1 = keep 2's state
2 -> 3 = keep 2's state
1 -> 2 = resume 2's state
3 -> 2 = resume 2's state
1 -> 3 = keep 2's state
3 -> 1 = keep 2's state
etc..

我上传了超过30个输入字段,我不希望每次任何EditText文本更改时都将所有信息存储在SQLite中。

如果我使用addToBackStack,那么我可以从家里去支持编辑等等。我不想要那个!的Yelp!

2 个答案:

答案 0 :(得分:1)

可能不适合您的需求,但如果可以的话,只需要实例化一次片段:

private MyFragment mMyFragment;
private MyOtherFragment mMyOtherFragment;

在某处初始化它们并重新使用它们而不再实例化它们

答案 1 :(得分:-1)

添加到backStack不会存储信息。因为你必须使用RetainInstanceState。

将方法重写为setRetainInstance,如下所示:

@Override
public void setRetainInstance(boolean retain) {
    super.setRetainInstance(true);
}

然后在onAttach片段方法中,把它放在:

getRetainInstance();