我有一个主要活动A,上面有4个片段。按钮单击后,片段会一个接一个地出现。
点击最后一个片段(第四个)上的按钮后,我将进入新的活动B.
当用户点击按钮时,如何实现后退按钮按下。他被带到活动A的第四个片段?
答案 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
}
希望这有帮助。此致