我阅读了关于这个主题的主题,但直到不工作。
这是我在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();
现在我按下后退按钮,应用程序不会回到第一个片段。
任何想法为什么?
答案 0 :(得分:1)
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
if(getFragmentManager().getBackStackEntryCount()!=0)
getFragmentManager().popBackStack();
else
}
你需要覆盖onBackPressed()方法