java - 恢复上一个 fragment onBackPressed()?

标签 java android android-fragments android-fragmentactivity

我有一个 HomeFragment,它有一个按钮,单击时会调用以下内容:

Fragment frag = new CustFragment();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.home_container, frag).commit();

然后在我的 FragmentActivity 中,也就是上面提到的 fragment ,我有:

@Override
public void onBackPressed() {

    getFragmentManager().popBackStack();
    super.onBackPressed();

}

这就是我尝试过的方法,但是如果我在 frag fragment 上并按下后退按钮,它不会返回到最后一个 fragment (HomeFragment)。相反,它会尝试返回到上一个 Activity,但由于没有任何 Activity (即上一个 Activity 调用了 finish()),它只会转到 Android 主屏幕。

我做错了什么?

PS:如果我不清楚,请在下方评论,我会尽力澄清。

最佳答案

改变

@Override
public void onBackPressed() 
{
   getFragmentManager().popBackStack();
   super.onBackPressed();
}

@Override
public void onBackPressed() 
{
  if(getSupportFragmentManager().getBackStackEntryCount() > 0)
    getSupportFragmentManager().popBackStack();
  else
   super.onBackPressed();
}

fragmentManager.beginTransaction().replace(R.id.home_container, frag).commit();

fragmentManager.beginTransaction().replace(R.id.home_container, frag).addToBackStack(null).commit();

关于java - 恢复上一个 fragment onBackPressed()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24487756/

相关文章:

android - INTENT_ACTION_STILL_IMAGE_CAMERA - PictureCallback 或拦截拍照事件

android - 使用android数据绑定(bind)将数据从Recycler View onClick传递到Detail Activity

java - 替换时如何保存 fragment 内容?

android - 将 ViewPager 与不带 actionBar 的选项卡一起使用

java - 不理解定义构造函数的 Java 语法

java - 这是什么意思 : Not a v4. 0.0 POM。对于项目 org.codehaus.mojo:rpm-maven-plugin

java - CORS 允许以管理员身份登录但不允许 put 请求

android - 创建可绘制的弯曲线形状

机器人 : Unable to stop activity

Java 按引用传递 int