0

我试了下面的代码从一个片段扩展片段移动到一个活动扩展活动。回到片段从活动onBackpress

Intent mIntent = new Intent(getActivity(), UserProfile.class); 
      Bundle bundle = new Bundle(); 
      bundle.putBoolean(Constant.isFromChatScreen, false); 
      mIntent.putExtras(bundle); 
      startActivity(mIntent); 

BaseActivity.java我有片段A,片段B,片段C ..from Fragment A我搬到Userprofile.java现在我想搬回片段A onBackPressed 我怎样才能做到这一点?

+1

这似乎有点奇怪,但我可能会误解您的问题。片段被托管在活动中,为什么不交换片段并通过后备栈来操纵它们呢? – Stefan

+0

在BaseActivity.java中我有片段A,片段B,片段C..from片段A我移动到Userprofile.java现在我想回到片段A. –

+0

'startActivityForResult()'? – Stefan

回答

0

只要在提交之前使用addToBackStack(null)进行片段交易,然后当您按下后退按钮时,您将返回片段。

+0

他正在开始一个新的活动。您必须考虑活动的生命周期如何变化。 –

+0

你可以看到Hadi Samadbin的评论,其中说明我的回答是正确的。他正在开始一个新的活动,如果他按下后退按钮,他会达到他最后的活动(这是包含片段A的活动),并且如果他将addToBackStack转换,他会看到片段A,因为它是在开始新活动的意图之前,他曾与之合作过的最后一个片段。 –

+0

@ T.S你可以upvote这个问题吗?.. –

1

查看Google文档findFragmentByTag()here

您还可以使用addToBackStack()同时呼吁从FragmentTransaction

片段
0

老问题,但任何人都在寻找的答案,这可能只是这样做:

@Override 
public void onBackPressed() { 
    finish(); 
} 

finish()“关闭”当前的活动并将您带回片段(实际上,它会将您带回活动托管片段)