我有一个片段(比如说 FragA )和另一个片段(比如 FragB )。
在 FragA 中,我设置了一些值seekbar
并检查checkbox
但现在如果点击 FragB ,然后点击 FragA ,则所有设置值都将消失。
对于片段,我使用ListAdapter
根据位置编号设置片段。我点击的地方。我不希望按下后退按钮,但点击fragment
。
我的问题是如何在其他片段中设置参数并单击我之前设置的片段时,如何将片段恢复到之前的状态。
答案 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);
}
}
,那将是一个好主意答案 1 :(得分:0)
您可以将每个事务保存到活动管理的后台,允许用户向后导航fragment
更改(类似于向后导航活动)。
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
然而,在调用commit()
之前,您可能需要调用addToBackStack()
,以便将事务添加到片段事务的后台堆栈中。此后备堆栈由活动管理,并允许用户通过按“返回”按钮返回到先前的片段状态。