Android 获取错误:已添加片段?

Android 获取错误:已添加片段?,android,eclipse,fragment,Android,Eclipse,Fragment,为什么会返回“碎片已添加”错误并导致应用程序崩溃 android.support.v4.app.FragmentManager fm = getSupportFragmentManager(); android.support.v4.app.FragmentTransaction ft = fm.beginTransaction(); ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);

为什么会返回“碎片已添加”错误并导致应用程序崩溃

android.support.v4.app.FragmentManager fm = getSupportFragmentManager();

    android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();



    ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
    ft.replace(R.id.fragment_container, tempmainfrag);
    ft.commit();
    for(int i = 0; i < fm.getBackStackEntryCount(); i++)
    {
        fm.popBackStack();
    }
android.support.v4.app.FragmentManager fm=getSupportFragmentManager();
android.support.v4.app.FragmentTransaction ft=fm.beginTransaction();
ft.setCustomAnimations(R.anim.slide\u in\u left,R.anim.slide\u out\u right);
ft.replace(R.id.fragment_容器,tempmainfrag);
ft.commit();
对于(int i=0;i

我猜这是因为for循环,因为它在没有它的情况下工作,但我需要清除后堆栈,我如何才能正确地执行此操作?

我在使用mapfragments时遇到了相同的错误,这就是我最终解决此问题的原因:

@Override
public void onDestroyView() {
    super.onDestroyView();

    SupportMapFragment f = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.current_fragment);
    if (f != null)
        getFragmentManager().beginTransaction().remove(f).commit();
}

希望有帮助。

我在使用mapfragments时也遇到了同样的错误,这就是我最终解决问题的原因:

@Override
public void onDestroyView() {
    super.onDestroyView();

    SupportMapFragment f = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.current_fragment);
    if (f != null)
        getFragmentManager().beginTransaction().remove(f).commit();
}
希望能有帮助