从活动返回到上次访问的意图

时间:2018-07-29 12:15:19

标签: android android-fragments

我有一个主要活动,存在三个片段。片段2是主要片段。在片段3上,我有一个按钮。单击按钮后,它会将用户定向到ChatActivityChatActivity有一个onBackButtonPressed,应该将用户返回到片段3。但是,似乎总是会将用户返回到片段2(主片段)。

如何将用户带到他们上次访问的片段,或者至少回到片段3?

编辑:

我在按钮onClick函数中添加了这段代码:

ChatFragment fragment = new ChatFragment();
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.main_tabPager, fragment);
transaction.addToBackStack(null);
transaction.commit();

当我在活动中单击“后退”按钮时,它不会使我回到片段3,而是重新构建fragmentpager并从片段2开始。

2 个答案:

答案 0 :(得分:0)

根据文档,理想情况下,addToBackStack()片段事务应该足够了,但有时似乎不正确,因此我们必须在我们自己按下“后退”按钮时处理后退堆栈的弹出。我将其添加到我的活动中,并按预期工作:

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

希望有帮助。

答案 1 :(得分:0)

从主片段(片段2)打开片段3时,将片段3像这样添加到后堆栈中:

createMaze(levels[selected])

您应该将所有要返回的片段添加到后堆栈中