Java 用于循环

Java 用于循环,java,android,for-loop,android-viewpager,android-tablayout,Java,Android,For Loop,Android Viewpager,Android Tablayout,我的问题是我在选项卡布局中创建了8个viewpager。假设我想要3个查看页面,我需要这些页面,但我想删除其余的页面 这是我添加选项卡的代码,我使用for loop删除其余选项卡,但出现错误“无效索引6,大小为6”,因此,它不能满足我的要求。我如何调整我的循环功能 BasePagerAdapter adapter = new BasePagerAdapter(getSupportFragmentManager()); Tab1 tab1 = new Tab1(); Tab2 t

我的问题是我在选项卡布局中创建了8个viewpager。假设我想要3个查看页面,我需要这些页面,但我想删除其余的页面

这是我添加选项卡的代码,我使用for loop删除其余选项卡,但出现错误“无效索引6,大小为6”,因此,它不能满足我的要求。我如何调整我的循环功能

 BasePagerAdapter adapter = new BasePagerAdapter(getSupportFragmentManager());
    Tab1 tab1 = new Tab1();
    Tab2 tab2 = new Tab2();
    Tab3 tab3 = new Tab3();
    Tab4 tab4 = new Tab4();
    Tab5 tab5 = new Tab5();
    Tab6 tab6 = new Tab6();
    Tab7 tab7 = new Tab7();
    Tab8 tab8 = new Tab8();
    Tab9 tab9 = new Tab9();

    adapter.addFragment(tab1, "All");
    adapter.addFragment(tab2, "1");
    adapter.addFragment(tab3, "2");
    adapter.addFragment(tab4, "3");
    adapter.addFragment(tab5, "4");
    adapter.addFragment(tab6, "5");
    adapter.addFragment(tab7, "6");
    adapter.addFragment(tab8, "7");
    adapter.addFragment(tab9, "8");

    //Initializing viewPager
    viewPager = (ViewPager) findViewById(R.id.pager);

    //Creating our pager adapter


    //Adding adapter to pager
    viewPager.setAdapter(adapter);

    int ans =3;
    for(int i =8 ; ans<=i ; ans++) {

        adapter.removeFragment(ans);
    }
BasePagerAdapter适配器=新的BasePagerAdapter(getSupportFragmentManager());
Tab1 Tab1=新Tab1();
Tab2 Tab2=新Tab2();
Tab3 Tab3=新Tab3();
Tab4 Tab4=新Tab4();
Tab5 Tab5=新Tab5();
Tab6 Tab6=新Tab6();
Tab7 Tab7=新Tab7();
Tab8 Tab8=新Tab8();
Tab9 Tab9=新Tab9();
adapter.addFragment(表1,“全部”);
adapter.addFragment(表2,“1”);
adapter.addFragment(表3,“2”);
adapter.addFragment(表4,“3”);
adapter.addFragment(表5,“4”);
adapter.addFragment(表6,“5”);
adapter.addFragment(表7,“6”);
adapter.addFragment(表8,“7”);
adapter.addFragment(表9,“8”);
//初始化viewPager
viewPager=(viewPager)findViewById(R.id.pager);
//创建寻呼机适配器
//向寻呼机添加适配器
viewPager.setAdapter(适配器);
int ans=3;

对于(inti=8;ans我认为您应该使用
List

列表中删除索引
i
处的元素时,索引大于
i
的元素将移位


在您的情况下,当
ans
变成
6
时,
List
有六个元素,其索引可以是
0到5
ans
在哪里?
i
的意义是什么(int i=8;anssry,问题编辑到ans++;在循环为4之前,它将为您打开3个需要的选项卡i>=ans..如果要删除3,则表示使用=或只是>是enough@Andreas在之前的评论中说
int ans=3;         //you need only 3

for(int i =8 ; i>ans ; i--)   //i for total count. make sure that size
{

    adapter.removeFragment(i);//it remove the pager 8,7,6,5,4
}