了解片段堆栈

时间:2012-06-04 17:36:40

标签: android android-fragments actionbarsherlock android-actionbar

我有一个带标签导航的操作栏(actionbarsherlock),我也有一些操作项。我的一个操作项显示了一个ListFragment,这就是我所说的:

    case R.id.menuitem_info:
        // Create new fragment and transaction
        SherlockListFragment aboutListFragment = new AboutListFragment();
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

        // Replace whatever is in the fragment_container view with this fragment,
        // and add the transaction to the back stack
        ft.replace(R.id.root, aboutListFragment);
        ft.addToBackStack(null);
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);

        // Commit the transaction
        ft.commit();
        return true;

我的问题是当我点击后退按钮时,我收到IllegalArgumentException。我不确定如何从视图中删除片段并显示上一个视图?

这是我的主页按钮代码:

    case android.R.id.home:
        FragmentManager fm = getSupportFragmentManager();
        if (fm.getBackStackEntryCount() > 0) {
            fm.popBackStack();
        }
        return true;

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:3)

我在android.R.id.home中执行了以下操作:



    case android.R.id.home:
        FragmentManager fm = getSupportFragmentManager();
        if(fm.getBackStackEntryCount()>0){
            onBackPressed();
        }
        return true;

我希望这对你有帮助,对我来说就像魅力一样