0

我是一名老 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

4

1 回答 1

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

于 2013-02-06T13:29:41.160 回答