android viewpager 更新adapter中的fragment

需求是这样的:
搜索内容,搜索结果有4中。
如果搜索的结果中,只有3中有结果那么只显示3个tab。
如果有2个那么显示2个。(fragment 为同一个类。如 searchfragment)
我现在使用FragmentPagerAdapter 发现调用FragmentPagerAdapter 无效果。
然后在百度中搜索点用这个POSITION_NONE 同样达不到效果

问题搞定了。但是不是很科学的方法。

 import java.util.List;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class Pageradapter extends FragmentPagerAdapter {
    private List<Fragment> mFragment;
    private long baseId = 0;

    public Pageradapter(FragmentManager fm, List<Fragment> fragment) {
        super(fm);
        this.mFragment = fragment;
    }

    @Override
    public Fragment getItem(int position) {
        return mFragment.get(position);
    }

    @Override
    public int getCount() {
        return mFragment.size();
    }

    public List<Fragment> getFragment() {
        return mFragment;
    }

    public void setFragment(List<Fragment> fragments) {
        this.mFragment = fragments;
        baseId = (int)(Math.random()*10000)+1;
        notifyDataSetChanged();
    }

    @Override
    public long getItemId(int position) {
        return baseId + position;
    }

    @Override
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }
}

网上很多关于更改这个id的说明,我就不解释了。
我这个,满足了我暂时的需求,但是这个随机数,不确定的因素。也是有几率拿到重复的id的。
希望大家看到,给一个更好的解决方案。