android – addToBackStack()无效

前端之家收集整理的这篇文章主要介绍了android – addToBackStack()无效前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有我的MainActivity管理两个一起工作的片段.
我的一个方法是ListFragment上的监听器接口,MainActivity负责切换片段.

但由于某种原因,似乎addToBackStack不起作用.当我点击列表时,转到下一个片段并点击设备的后退按钮……它只是在设备主屏幕上的应用程序之外.

谁知道问题是什么?

  1. @Override
  2. public void OnSelectionChanged(Object object) {
  3. DetailFragment DetailFragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.detail_fragment);
  4. if (DetailFragment != null) {
  5. DetailFragment.setTitle(object);
  6. } else {
  7. DetailFragment newDetailFragment = new DetailFragment();
  8. Bundle args = new Bundle();
  9. args.putSerializable(DetailFragment.KEY_POSITION,object);
  10. newDetailFragment.setArguments(args);
  11. FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
  12. fragmentTransaction.replace(R.id.fragment_container,newDetailFragment);
  13. fragmentTransaction.addToBackStack(null);
  14. fragmentTransaction.commit();
  15. }
  16. }
最佳答案
您应该在MainActivity中添加方法.

  1. @Override
  2. public void onBackPressed() {
  3. FragmentManager fm = getFragmentManager();
  4. if (fm.getBackStackEntryCount() > 0) {
  5. fm.popBackStack();
  6. } else {
  7. super.onBackPressed();
  8. }
  9. }

并检查您的导入使用android.app.而不是android.support.v4.app.

例如:

  1. import android.app.FragmentManager;

代替 :

  1. import android.support.v4.app.FragmentManager;

猜你在找的Android相关文章