Android 碎片回撤替换问题

Android 碎片回撤替换问题,android,android-fragments,back-stack,fragment-backstack,Android,Android Fragments,Back Stack,Fragment Backstack,我使用addtobackstack函数添加了backstack中的片段。 当我在没有使用addtobackstack函数的情况下添加一个片段,然后按下后退按钮时,后退就是返回到错误的片段 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home:

我使用
addtobackstack
函数添加了backstack中的片段。 当我在没有使用
addtobackstack
函数的情况下添加一个片段,然后按下后退按钮时,后退就是返回到错误的片段

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {

            case android.R.id.home:                  
                if (getFragmentManager().getBackStackEntryCount() ==0) {
                    finish();
                }else{
                    getFragmentManager().popBackStack();
                }
                break;

            default:
                break;
        }

        return super.onOptionsItemSelected(item);
    }
例如:

使用
addtobackstack

使用
addtobackstack

在不使用
addtobackstack

使用
addtobackstack

当我在片段D中并按下后退按钮时,我将进入片段A。但我必须进入片段B

我怎样才能修好它


谢谢,

将此代码放入“活动”,然后重试

Fragment后面跟着Activity,所以当您将Fragment与带标记的addToBackStack()一起使用或传递null时,将在FragmentManager的帮助下在堆栈中添加Fragment

无需添加ToBackStack()。注释此代码或传递null

    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager .beginTransaction();
    fragmentTransaction .replace(R.id.fragment_container, YouNextFragment);
    fragmentTransaction .addToBackStack(null);
    fragmentTransaction .commit();
当您按下“活动”中的“后退”按钮时,会自动弹出最新添加的片段

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {

            case android.R.id.home:                  
                if (getFragmentManager().getBackStackEntryCount() ==0) {
                    finish();
                }else{
                    getFragmentManager().popBackStack();
                }
                break;

            default:
                break;
        }

        return super.onOptionsItemSelected(item);
    }

你能解释一下这段代码是如何帮助实现问题中的要求的吗?我认为这个答案与我的要求无关:),但我会尝试。我不想在backbackback中添加特定的片段。但您说过,使用“null”参数将所有片段添加到backstack。