我的问题是,我有一个 Activity 和一个 fragment ,从 Activity 中打开那个 fragment 但是当我按下后退按钮时它关闭了应用程序。
我尝试使用此代码。

对于开放 fragment 。

 case R.id.button_contact:
         Fragment fragment = new FragmentContact();
                FragmentManager fragmentManager =  getSupportFragmentManager();
                fragmentManager.beginTransaction().replace(R.id.frame_container,fragment).addToBackStack("Frag1").commit();
                break;

用于返回按钮。
 @Override
    public void onBackPressed() {
        getSupportFragmentManager().popBackStackImmediate("Frag1",0);
        super.onBackPressed();
    }

最佳答案

我假设您只想删除 fragment 并保留 Activity ?

在这种情况下,将您的 onBackPressed 方法修改为

@Override
public void onBackPressed() {
    if (getSupportFragmentManager().findFragmentByTag("Frag1") != null) {
        getSupportFragmentManager().popBackStackImmediate("Frag1",0);
    } else {
        super.onBackPressed();
    }
}

如果添加了 fragment ,这将从 Activity 中删除 fragment ,如果没有,则后退按钮将正常运行并销毁 Activity 。

关于android - 从 fragment 返回到 Activity onBackPressed,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28235253/

10-10 09:09