我有一个Activity(Activity 1),其中包含多个片段。我从第一个Activity的一个片段(比如片段C)调用第二个Activity(Activity 2)。我想从第二个活动(活动2)导航回片段C。但是,它正在导航到Activity 1的第一个片段,而不是片段C。请帮帮我
到目前为止,我尝试过的代码块:
在片段C中,
categoryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(getActivity(),Activity2.class);
getActivity().startActivity(i);
}
});
在容器Activity(即Activity 1)中,
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
FragmentC myFragment = new FragmentC();
transaction.replace(R.id.frame_container, myFragment);
transaction.commit();
2条答案
按热度按时间neskvpey1#
根据Official Android Documentation,让片段与另一个甚至另一个Activity通信的最佳方式是通过关联的Activity。
为了避免任何混乱的片段交易,请参考:
通常,您会希望一个Fragment与另一个Fragment进行通信,例如根据用户事件更改内容。所有片段到片段的通信都通过关联的Activity完成。两个碎片不应该直接交流。
7ajki6be2#
你可以使用FragmentManager来控制片段的导航,并将控制从片段移回前一个Activity(将片段弹出回栈)。
在你的例子中,你可以在片段管理器中使用popBackStackImmediate()和popBackStack()来销毁片段。
或
您还可以阅读this以了解有关这些方法的更多详细信息