如何导航到先前活动的先前片段

时间:2016-11-01 18:40:43

标签: java android android-fragments

我有一个主要活动A,上面有4个片段。按钮单击后,片段会一个接一个地出现。

点击最后​​一个片段(第四个)上的按钮后,我将进入新的活动B.

当用户点击按钮时,如何实现后退按钮按下。他被带到活动A的第四个片段?

2 个答案:

答案 0 :(得分:2)

您需要使用后台堆栈。每次添加更改片段时,您都希望将该片段添加到后端堆栈。

//Create an instance of your fragment;
MyFragment frag = MyFragment.newInstance();
//replace the fragment in a normal fragment transaction
getSupportFragmentManager().beginTransaction()
                .replace(R.id.container, frag, "MyFragment Tag")
                //add to the back stack 
                .addToBackStack(f)
                .commit();

关于这一点,现在后退按钮将遍历您之前的每个片段。因此,在点击片段3之后,如果您点击后退按钮,您将看到片段2等。

这可能不是您想要的结果,因此您可能只想在添加片段4时将片段添加到后台堆栈。

答案 1 :(得分:0)

您可以将活动B中的数据传递到onBackPressed函数

内的活动A.
@Override
public void onBackPressed() {
    super.onBackPressed();
    Intent i = new Intent(getApplicationContext(), AcvityA.class);
    i.putExtra("position","4");
    startActivity(i);

}

在您的活动中

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String position = extras.getString("position");
    //load the fragment based in position 
}

希望这有帮助。此致