因此,我使用一个按钮从活动A / Fragment4转到活动B,然后使用一个按钮从活动B返回活动A / Fragment4。我已经将前进动作完美地工作了,而后退动作也可以正常工作,活动B和片段4现在同时在同一屏幕上,这意味着活动B没有被删除/销毁。这是onClick()Fragment4的代码。
public void onClick(View view) {
Intent intent=new Intent(getContext(), ActivityBActivity.class);
startActivity(intent);
getActivity().finish();
Log.d("BASE_FRAGMENT", "Activity should have been started here");
}
});
这是来自活动B的onClick()中的代码。
android.support.v4.app.FragmentTransaction transaction=getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container,new Fragment4Fragment());
transaction.addToBackStack(Fragment4Fragment.class.getName()null);
transaction.commit();
我尝试使用finish();但这只会关闭整个应用程序。并且addToBackStack行似乎没有什么不同。我什至已将清单中的noHistory语句设置为true,没有帮助。
答案 0 :(得分:0)
如果您的片段正在活动A 中打开,则应使用后退按钮。因为按下后退按钮将打开活动A ,也是片段,因为它在活动A上是打开的。
如果您的活动A 未打开,则首先必须从活动B 中打开活动A ,然后打开片段< / strong>形成活动A。
如果您使用 addtobackstack 添加片段,则意味着后退按钮首先适用于片段,就像活动一样。
如果您对我的回答有任何疑问,我会帮助您。