我将使用replace命令进入下一个片段,并且在后退按钮上我需要回到之前的片段。然而它进入主页而不是之前的片段。以下是代码:
View.OnClickListener nextBtnClick = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
FragmentManager manager = getFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
Fragment2 tf = new Fragment2();
ft.replace(android.R.id.tabcontent, tf);
ft.addToBackStack(null);
ft.commit();
}
};
我尝试了很多选项,但它不会回到调用新片段的片段。请指教。感谢。
答案 0 :(得分:1)
我认为在调用addToBackStack()时需要输入一个String。像这样:
ft.addToBackStack("Fragment2");
答案 1 :(得分:0)
你必须覆盖你的onBackPressed来弹出后面的片段堆栈,如下所示:
@Override
public void onBackPressed() {
FragmentManager fm = getSupportFragmentManager();
if (fm.getBackStackEntryCount() > 0) {
fm.popBackStackImmediate();
}else{
super.onBackPressed();
}
}
答案 2 :(得分:0)
要在backstack中添加片段:
FragmentTransaction transaction = getSupportFragmentManager()。beginTransaction();
transaction.replace(fragmentContainerId, fragmentInstance, "TAG");
transaction.addToBackStack("TAG");
transaction.commit();
覆盖背压:
写入方法return boolean
{ FragmentManager fragManager = getSupportFragmentManager(); if(fragManager.getBackStackEntryCount()> 0) {
fragManager.popBackStack();
返回true; } 返回false; }