1

タブナビゲーション付きのアクションバー(actionbarsherlock)があり、アクションアイテムもいくつかあります。アクションアイテムの1つに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;

任意の提案をいただければ幸いです!

4

1 に答える 1

3

android.R.id.home の場合、次のことを行いました。



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

私はこれがあなたを助けることを願っています、私にとっては魅力のように働きます

于 2012-07-25T09:58:23.067 に答える