这是场景:
- 适配器已经包含数据
- 我需要清除旧数据集并添加从服务器获取的新数据集
'clear()' 可以删除所有项目,但随后适配器会重新填充旧片段而不是新片段。
提前感谢您的帮助。
public class MyFragmentAdapter extends FragmentStatePagerAdapter {
private ArrayList<MyFragment> mFragments;
...
@Override
public Fragment getItem(int pos) {
return mFragments.get(pos);
}
...
public void clear() {
mFragments.clear();
notifyDataSetChanged();
}
public void addItems(List<MyItem> items) {
for(MyItem it : items) {
mFragments.add(MyFragment.newInstance(it));
}
notifyDataSetChanged();
}
@Override
public int getItemPosition(Object object) {
MyFragment fi = (MyFragment) object;
int idx = mFragments.indexOf(fi);
if (idx >= 0) {
return POSITION_UNCHANGED;
} else {
return POSITION_NONE;
}
}
...
}
public class MyActivity extends FragmentActivity {
private ViewPager mPager;
private MyFragmentAdapter mAdapter;
...
private void resetItems(List<MyItem> items) {
mAdapter.clear();
mAdapter.addItems(items);
}
...
}