我的问题是,我有一个 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/