我是一名古老的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
答案 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