android - 从 fragment 返回到 Activity onBackPressed

标签 android android-fragments

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

相关文章:

java - 从Webview获取html字符串并存储为html文件

java - 我的拖放功能在 Android Studio 中不起作用

java - 无法在fragment中调用android注解方法?

Android:不推荐使用 getIntent()

fragment 中的Android SharedPreferences

Android 实时多人游戏通知连接丢失

android - 如何在录制时发送 mp4 的可读部分

android - 如何将 onclick 和 ontouch 监听器同时用于 android 中的不同功能

android - 我怎么知道再访问 Fragment ChildFragmentManager 是否安全?

java - Android studio 中的首选项设置如何将 EditTextPreference 中的值连接到 TextView