回到片段保持其先前的状态

时间:2013-02-06 12:58:18

标签: android android-activity fragment back

我是一名古老的Android程序员,但我过去只使用过活动而且我对Fragments很新。

我创建了一个带有菜单栏(4个按钮)的应用程序,当单击它时,应该在菜单栏上方加载每个不同的片段。 问题是,每次我点击其中一个菜单栏按钮时,它会完全重新加载片段,我希望它在之前的状态下显示片段(就像设备后退按钮那样)。

我怎么能这样做?

来自主要活动的电话:

    Fragment my_fragment = new MyFragment();
    FragmentManager fragment_manager = getSupportFragmentManager();
    FragmentTransaction fragment_transaction = fragment_manager.beginTransaction();
    fragment_transaction.replace(R.id.fragment_container, my_fragment);
    fragment_transaction.addToBackStack(null);
    fragment_transaction.commit();

我的大多数MyFragment流程代码都在函数

  

onActivityCreated

1 个答案:

答案 0 :(得分:1)

您也可以在活动中使用onSaveInstanceState方法,使用Bundle savedInstanceState对象恢复数据,例如

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

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    if (savedInstanceState != null) {
        int testValue = savedInstanceState.getInt("test", 0);
    }
}

http://developer.android.com/guide/components/fragments.html