微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – addToBackStack()无效

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

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

谁知道问题是什么?

@Override
public void OnSelectionChanged(Object object) {
    DetailFragment DetailFragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.detail_fragment);

    if (DetailFragment != null) {
        DetailFragment.setTitle(object);
    } else {
        DetailFragment newDetailFragment = new DetailFragment();
        Bundle args = new Bundle();

        args.putSerializable(DetailFragment.KEY_POSITION,object);
        newDetailFragment.setArguments(args);
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();

        fragmentTransaction.replace(R.id.fragment_container,newDetailFragment);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
    }
}
最佳答案
您应该在MainActivity中添加方法.

@Override
public void onBackpressed() {
    FragmentManager fm = getFragmentManager();
    if (fm.getBackStackEntryCount() > 0) {
        fm.popBackStack();
    } else {
        super.onBackpressed();
    }
}

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

例如:

import android.app.FragmentManager;

代替 :

import android.support.v4.app.FragmentManager;

原文地址:https://www.jb51.cc/android/431208.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐