我有一個活動,我添加一個ListFragment。當我點擊一個按鈕時,一個新的片段替換了ListFragment。我使用addTobackStack(null),所以當我按下後退按鈕時,我將結束到ListFragment。如果用戶沒有按下背面,而是點擊一個按鈕,然後他去到另一個新的片段。從那裏我希望用戶回到ListFragment,所以我不使用addTobackStack()當我做的fragmentTransaction。通知onbackpressed()從哪個片段被調用
的模式是:
ListFragment -------> GameFragment --------> EndFragment
從GameFragment
我可以回去ListFragment
和EndFragment
我必須去ListFragment
而不是GameFragment
。
所以我猜我總得有覆蓋onBackPressed()在我的活動,所以當我在EndFragment
進行交易的ListFragment
的問題是我不知道如何參考EndFragment
當我重寫onBackPressed()
(除非有執行此操作的更好的方式...)
onBackPressed()的代碼,我用現在:
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
Log.i("FINISH", "Finish");
finish();
} else {
Log.i("FINISH", "POP STACK");
getSupportFragmentManager().popBackStack();
}
}
它們不是活動。他們是碎片。對於我的帖子造成的誤解抱歉,我做了一些編輯,以便我可以更容易理解。 – mt0s