Android - 如何结束一个 Fragment

7
在我的应用程序中,我有一个导航抽屉,我的应用程序只有一个活动,如果从导航抽屉中选择了某个项目,则会启动/替换当前片段。我该如何使得当从导航抽屉中选择某个项目并启动新片段时,旧的片段也结束?
我无法做到:
@Override
public void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    getActivity().finish();
}   

因为只有一个活动,所以这样做会导致应用程序崩溃。

我该如何终止片段?

编辑:我的片段事务

Home HomeFragment = new Home();
        transaction.replace(R.id.llhome, HomeFragment);
        transaction.addToBackStack(null);
        transaction.commit();
              mDrawerList.setItemChecked(position, true);
                mDrawerLayout.closeDrawer(mDrawerList);

thanks

2个回答

11

只需调用:

getActivity().onBackPressed();

1
如果您正在使用通过FragmentTransaction设置的动态片段,则可以运行一个事务来使用replace()替换旧片段为新片段。

@user222786:那我就不理解你的担忧了。你已经成功地替换了该片段。 - CommonsWare
我没有,这个片段不会死掉,如果我去了5个不同的片段,我就必须按5次返回键才能回到主屏幕。这些片段没有被销毁。 - user222786
2
@user222786 移除 transaction.addToBackStack(null); - MaciejGórski
@user222786:我同意MaciejGórski的说法。如果你不想将事务添加到后退栈中,就不要将事务添加到后退栈中。 - CommonsWare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接