Java 用于循环
我的问题是我在选项卡布局中创建了8个viewpager。假设我想要3个查看页面,我需要这些页面,但我想删除其余的页面 这是我添加选项卡的代码,我使用for loop删除其余选项卡,但出现错误“无效索引6,大小为6”,因此,它不能满足我的要求。我如何调整我的循环功能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
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
}