addToBackStack()如何工作?

时间:2014-08-23 12:21:25

标签: java android android-fragments back-stack

我只是不明白。

我有一个活动A,一个片段F1和一个片段F2。 活动开始时,会按

打开F1
getFragmentManager().beginTransaction()
            .add(android.R.id.content, new BookChoose())
            .addToBackStack(BookChoose.TAG)
            .commit();

然后在新片段中有一个注册了onClickListener的按钮,该按钮由<{p>}产生F2

getFragmentManager().beginTransaction()
             .add(android.R.id.content, new BookPlay())
             .addToBackStack(BookPlay.TAG)
             .commit();

然后当我按回来时,它会把我扔到主屏幕上。不应该还原最后一笔交易而且我会在F1吗?

1 个答案:

答案 0 :(得分:0)

根据Fragments docs,你应该做的是:

Fragment newFragment = new BookPlay ();
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the content view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.content, newFragment);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();