从片段返回到Activity onBackPressed

Pra*_*ati 3 android android-fragments

我的问题是,我有一个活动和一个片段,从活动打开那个片段但是当我按下按钮它关闭应用程序.我尝试使用此代码.

用于打开片段.

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

用于后退按钮.

 @Override
    public void onBackPressed() {
        getSupportFragmentManager().popBackStackImmediate("Frag1",0);
        super.onBackPressed();
    }
Run Code Online (Sandbox Code Playgroud)

Sam*_*ins 5

我假设你只想删除片段并保留活动?

在这种情况下,修改你的onBackPressed方法

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

这将从活动中删除片段(如果已添加),如果不添加,则后退按钮将正常运行并销毁活动.