Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 碎片不会后退_Android_Android Fragments - Fatal编程技术网

Android 碎片不会后退

Android 碎片不会后退,android,android-fragments,Android,Android Fragments,在我的应用程序中,我在一个活动中使用了片段。我创建了一个调用新片段的方法。该方法工作正常,但每当我按下“后退”按钮时,我的应用程序就会关闭,即使我已将片段放在后堆栈中。请帮助我 代码 使用以下命令: EditProfileFragment mEditProfileFragment = new EditProfileFragment(); FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction frag

在我的应用程序中,我在一个活动中使用了片段。我创建了一个调用新片段的方法。该方法工作正常,但每当我按下“后退”按钮时,我的应用程序就会关闭,即使我已将片段放在后堆栈中。请帮助我

代码

使用以下命令:

EditProfileFragment mEditProfileFragment = new EditProfileFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager
                    .beginTransaction();
fragmentTransaction.replace(R.id.content_frame,
                    mEditProfileFragment);
fragmentTransaction.addToBackStack(MyProfileFragment.class
                    .getName());
fragmentTransaction.commit();

你在处理反压活动吗?如下代码所示:

@Override
public void onBackPressed()
{
    FragmentManager fragmentManager = getSupportFragmentManager();
    int count = fragmentManager.getBackStackEntryCount();
    if (1 < count)
    {       
        fragmentManager.popBackStackImmediate();
    }else
    {
        super.onBackPressed();          
    }
}
@覆盖
public void onBackPressed()
{
FragmentManager FragmentManager=getSupportFragmentManager();
int count=fragmentManager.getBackStackEntryCount();
如果(1<计数)
{       
fragmentManager.popbackbackimmediate();
}否则
{
super.onBackPressed();
}
}

您需要在onBackPressed()方法中弹出片段…我是否需要弹出onBackPressed(),它不能直接从堆栈转到上一个片段
boolean fragmentPopped=manager.popbackbackstackimmediate(backStateName,0)这是不需要的。你的旧片段名称意味着当你按下后,该片段将打开,我无法看到你的整个代码,因此你的片段是父片段吗?我已经编辑了代码,请使用相同的名称,它肯定会工作。我正在使用它..不需要使用这个函数PopBackbackImmediate();
@Override
public void onBackPressed()
{
    FragmentManager fragmentManager = getSupportFragmentManager();
    int count = fragmentManager.getBackStackEntryCount();
    if (1 < count)
    {       
        fragmentManager.popBackStackImmediate();
    }else
    {
        super.onBackPressed();          
    }
}