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()「關閉」當前的活動並將您帶回片段(實際上,它會將您帶回活動託管片段)