2016-12-30 189 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