2016-12-30 191 views
0

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

这是我的代码添加选项卡,我用循环删除其余选项卡,但有错误“无效的索引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); 
    } 
+2

哪里是''ans''? –

+1

'我'有什么意义? 'for(int i = 8; ans <= i; ans ++)'与'for(; ans <= 8; ans ++)'相同,因为你永远不会改变'i'。相反,尝试'for(int i = 8; i> = ans; i--){adapter.removeFragment(i); }'从最后删除它们,所以在删除过程中索引值保持不变。 – Andreas

+0

sry,编辑 – AnthonyTang

回答

0
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 
} 
+0

i> = ans ..如果你想删除3意味着使用=或者只是>足够了 – sasikumar

+0

@Andreas说在 –

+0

之前的评论好的,谢谢你工作。 – AnthonyTang

0

我认为你们必须已经使用List

当从List删除索引i处的元素时,将索引大于i的元素进行移位。

在你的情况下,当ans成为6List有六个元素和它的索引可以0 to 5