活动中的后退按钮,无需重新创建上一个活动(Android)

时间:2014-10-17 23:45:26

标签: android android-fragments

我有一个主菜单活动,即菜单(A)。活动A有6个片段。其中一个是图片库(图1)。当您触摸图片时,您将转到图片详细信息活动(B)(图2)。我将标签“parentName”添加到AndroidManifest.xml中的活动B.因此活动B的父级是活动A.问题是:当你在活动B中并按下向上按钮(图2)时,活动A被重新创建并显示活动A的第一个片段(不是画廊片段)。当您回到之前的活动时,我想要Instragram应用程序的相同行为。似乎Instagram应用程序不会重新创建以前的活动。预期的行为也类似于后退按钮的行为(图3)。我怎样才能实现这种行为?感谢

Figure 1. Master Activity with Gallery fragment 图1.图片详情活动

Figure 2. Picture details Activity 图2.图片详情活动

Figure 3. Back button 图3.后退按钮

2 个答案:

答案 0 :(得分:5)

我很容易解决了我的问题。我只需要将标签 android:launchMode =“singleTop”添加到活动A中。我还在活动A中添加了下一个代码,但可能没有必要。我希望你觉得它很有用。

@Override
protected void onSaveInstanceState(Bundle outState)
{
    super.onSaveInstanceState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
{
    super.onRestoreInstanceState(savedInstanceState);
}

答案 1 :(得分:0)

可能以编程方式使用它:

getFragmentManager().beginTransaction().replace(R.id.content_frame, new FragmentB(),null).addToBackStack(null).commit();

将此替换为此行:

getFragmentManager().beginTransaction().add(R.id.content_frame, fragment,null).addToBackStack(null).commit();