如何从Backstack位置获取片段

时间:2016-02-05 08:15:42

标签: android android-fragments

    for(int entry = 0; entry < mFragmentManager.getBackStackEntryCount(); entry++){
       Fragment fragment=  mFragmentManager.findFragmentById(mFragmentManager.getBackStackEntryAt(entry).getId());
        Log.i(TAG, "Found fragment: " + String.valueOf(fragment.getClass().getSimpleName()));
    }

上面的代码返回null,有没有更好的解决方案来使用它在backstack中的位置来获取片段。

1 个答案:

答案 0 :(得分:0)

要在Backstack中获取最新的片段,

FragmentManager.BackStackEntry backEntry=getFragmentManager().getBackStackEntryAt(getActivity().getFragmentManager().getBackStackEntryCount()-1);
    String str=backEntry.getName();
    Fragment fragment=getFragmentManager().findFragmentByTag(str);

检查How to resume Fragment from BackStack if exists 这个Answer将为您提供更多详细信息。