Android:如何在FragmentPagerAdapter中将标签设置为碎片?

Android:如何在FragmentPagerAdapter中将标签设置为碎片?,android,android-fragments,Android,Android Fragments,这是一个内部类,它包含片段并在滑动时更改片段视图。此类在活动中定义 private class ViewPagerAdapter extends FragmentPagerAdapter { private int count; ViewPagerAdapter(FragmentManager fm, int count) { super(fm); this.count = count; } @Override publ

这是一个内部类,它包含片段并在滑动时更改片段视图。此类在
活动中定义

private class ViewPagerAdapter extends FragmentPagerAdapter {
    private int count;

    ViewPagerAdapter(FragmentManager fm, int count) {
        super(fm);
        this.count = count;
    }

    @Override
    public Fragment getItem(int position) {
        switch(position) {
            case 0:
                return new FriendsListFragment();

            case 1:
                Bundle bundle = new Bundle();
                bundle.putString(Keys.TAG, ChatListFragment.class.getSimpleName());
                ChatListFragment chatListFragment = new ChatListFragment();
                chatListFragment.setArguments(bundle);
                return chatListFragment;

            case 2:
                return new MoreFragment();

            default:
                return null;
        }
    }

    @Override
    public int getCount() {
        return count;
    }
}
在这里,我想添加一个代码,为每个片段设置标记,这样我就可以识别我所处的片段


我搜索了很多,没有找到这个问题的正确答案,所以请帮助。

您可以覆盖
FragmentPagerAdapter的
设置PrimaryItem
方法

 private class ViewPagerAdapter extends FragmentPagerAdapter {
        protected int currentPosition = -1;
        protected Fragment currentFragment;

        public ViewPagerAdapter(FragmentManager fm) {
            super(fm);
        }


        @Override
        public Fragment getItem(int position) {
           // ....
        }

        @Override
        public void setPrimaryItem(ViewGroup container, int position, Object object) {
            super.setPrimaryItem(container, position, object);
            this.currentPosition = position;
            if (object instanceof Fragment) {
                this.currentFragment = (Fragment) object;
            }
        }

        public int getCurrentPosition() {
            return currentPosition;
        }

        public Fragment getCurrentFragment() {
            return currentFragment;
        }
    }

只需使用getCurrentPosition或getCurrentFragment方法来获取有关当前片段的信息。

您可以覆盖
FragmentPagerAdapter的
setPrimaryItem
方法

 private class ViewPagerAdapter extends FragmentPagerAdapter {
        protected int currentPosition = -1;
        protected Fragment currentFragment;

        public ViewPagerAdapter(FragmentManager fm) {
            super(fm);
        }


        @Override
        public Fragment getItem(int position) {
           // ....
        }

        @Override
        public void setPrimaryItem(ViewGroup container, int position, Object object) {
            super.setPrimaryItem(container, position, object);
            this.currentPosition = position;
            if (object instanceof Fragment) {
                this.currentFragment = (Fragment) object;
            }
        }

        public int getCurrentPosition() {
            return currentPosition;
        }

        public Fragment getCurrentFragment() {
            return currentFragment;
        }
    }

只需使用getCurrentPosition或getCurrentFragment方法获取有关当前片段的信息。

您还可以使用viewpager pagechange listener检测您所在的片段您还可以使用viewpager pagechange listener检测您所在的片段