繁体   English   中英

在Android中替换片段时,addToBackstack不起作用

[英]addToBackstack not working when replacing fragments in android

我阅读了有关此主题的主题,但直到无法使用为止。

这是我在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();

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

知道为什么吗?

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

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

您需要重写onBackPressed()方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM