在替换android中的片段时,addToBackstack无法正常工作

时间:2015-03-16 11:53:14

标签: android android-fragments

我阅读了关于这个主题的主题,但直到不工作。

这是我在onCreate方法中的代码。

   if (savedInstanceState==null){
        WeatherFragment weatherFragment = (WeatherFragment) Fragment.instantiate(this, WeatherFragment.class.getName());
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();

        fragmentTransaction.add(R.id.container_small, weatherFragment);
        fragmentTransaction.commit();
    }

然后我替换片段。

        FrameLayout fl;
        if (findViewById(R.id.container2) != null)
            fl = (FrameLayout) findViewById(R.id.container2);
        else
            fl = (FrameLayout) findViewById(R.id.container_small);


        SettingsFragment settingsFragment = (SettingsFragment) Fragment.instantiate(this, SettingsFragment.class.getName());
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();

        fragmentTransaction.replace(R.id.container_small, settingsFragment);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();

现在我按下后退按钮,应用程序不会回到第一个片段。

任何想法为什么?

1 个答案:

答案 0 :(得分:1)

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub

    if(getFragmentManager().getBackStackEntryCount()!=0)
    getFragmentManager().popBackStack();
    else
}

你需要覆盖onBackPressed()方法