这是我的适配器,仅用于测试运行, 现在我想改变getItem(),以便它可以支持大量的项目。 像30(这个数字在不同情况下会发生变化)。 我已准备好imageSet数组。 请帮助。
私有类MyAdapter扩展了FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
Bundle bundle = new Bundle();
switch (position) {
case 0:
fragment = new Image();
bundle.putString("ImageId", imageSet[position]);
bundle.putString("ImageName","asd");
fragment.setArguments(bundle);
break;
case 1:
fragment = new Image();
bundle.putString("ImageId", imageSet[position]);
bundle.putString("ImageName","asd");
fragment.setArguments(bundle);
break;
case 2:
fragment = new Image();
bundle.putString("ImageId", imageSet[position]);
bundle.putString("ImageName","asd");
fragment.setArguments(bundle);
break;
case 3:
fragment = new Image();
bundle.putString("ImageId", imageSet[position]);
bundle.putString("ImageName","asd");
fragment.setArguments(bundle);
break;
}
return fragment;
}
@Override
public int getCount() {
return imageSet.length;
}
}
答案 0 :(得分:4)
首先使用FragmentStatePagerAdapter而不是FragementPagerAdapter,因为它将实现更有效的缓存和实例创建策略。
private class MyAdapter extends FragmentStatePagerAdapter{
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new Image();
Bundle bundle = new Bundle();
bundle.putString("ImageId", imageSet[position]);
bundle.putString("ImageName","asd");
fragment.setArguments(bundle);
return fragment;
}
@Override
public int getCount() {
return imageSet.length;
}
}