你如何获得当前片段的ID?

时间:2013-07-11 12:36:15

标签: android android-fragments android-viewpager fragmentpageradapter

我创建了一个包含8个片段的ViewPager,这些片段使用相同的xml布局。 但是,我希望不同的片段使用不同的内容。 我需要获取它所有片段的ID,以便我可以将特定内容加载到该片段上。

我试过

extras.putInt(Globals.KEY_CATEGORY_POSITION, position);
fragment.setArguments(extras);

在FragmentPagerAdapter上的getItem(int position)方法。

然后,我在Fragment类中得到片段的位置。当我这样做的时候,当我打印出每个片段的位置时,我从0到7,但是然后它们全部增加到7,所以它们都变成了相同的片段。

有没有其他方法可以获取每个片段的ID?

2 个答案:

答案 0 :(得分:3)

这是一个非常好的例子:

https://github.com/JakeWharton/ActionBarSherlock/blob/master/actionbarsherlock-samples/fragments/src/com/actionbarsherlock/sample/fragments/FragmentPagerSupport.java

创建片段时:

        Bundle args = new Bundle();
        args.putInt("num", num);
        f.setArguments(args);

然后在片段中:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mNum = getArguments() != null ? getArguments().getInt("num") : 1;
    }

答案 1 :(得分:0)

将它扔进FragmentPagerAdapter:)

public Fragment getActiveFragment(ViewPager container, int position) {
    String name = makeFragmentName(container.getId(), position);
    return  mFragmentManager.findFragmentByTag(name);
}

private static String makeFragmentName(int viewId, int index) {
    return "android:switcher:" + viewId + ":" + index;
}