当我们切换到其他片段并返回到最后一个片段时,如何在片段中保存先前的值

时间:2015-01-16 07:11:31

标签: android android-fragments listadapter

我有一个片段(比如说 FragA )和另一个片段(比如 FragB )。

FragA 中,我设置了一些值seekbar并检查checkbox

但现在如果点击 FragB ,然后点击 FragA ,则所有设置值都将消失。

对于片段,我使用ListAdapter根据位置编号设置片段。我点击的地方。我不希望按下后退按钮,但点击fragment

我的问题是如何在其他片段中设置参数并单击我之前设置的片段时,如何将片段恢复到之前的状态。

2 个答案:

答案 0 :(得分:1)

使用onSaveInstanceState(),下面是您需要如何实现它的示例

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("curChoice", mCurCheckPosition);
}

之后您可以像这样使用它:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
        // Restore last state for checked position.
        mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
    }

}

如果您浏览fragments documentation

,那将是一个好主意

答案 1 :(得分:0)

您可以将每个事务保存到活动管理的后台,允许用户向后导航fragment更改(类似于向后导航活动)。

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

然而,在调用commit()之前,您可能需要调用addToBackStack(),以便将事务添加到片段事务的后台堆栈中。此后备堆栈由活动管理,并允许用户通过按“返回”按钮返回到先前的片段状态。

detail