这是我的主要 Activity 。我关注了this guide关于 fragment 正确。当我单击“后退”按钮时,我的应用程序关闭而不是返回到 MainScreenFragment。为什么会发生这种情况以及为什么 addToBackStack()
不起作用?
public class MainScreenActivity extends ActionBarActivity implements MainScreenFragment.OnFrameChoiced {
private MainScreenFragment mainScreenFragment;
private AddWordsFragment addWordsFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_screen);
mainScreenFragment = new MainScreenFragment();
addWordsFragment = new AddWordsFragment();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.container, mainScreenFragment).addToBackStack(null).commit();
}
@Override
public void choiceFrame(int id) {
switch (id) {
case R.id.add_new_words_frame:
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, addWordsFragment).addToBackStack(null).commit();
fm.executePendingTransactions();
break;
}
}
附言我尝试使用来自 this 的解决方案主题,但它仍然不起作用。
最佳答案
你有没有试过像下面这样覆盖背面:
@overide
public void onBackPressed(){
FragmentManager fm = getSupportFragmentManager();
if (fm.getBackStackEntryCount() > 1) {
fm.popBackStack();
} else {
finish();
}
}
关于android - 为什么 addToBackStack() 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28959394/