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();
}
}