0

私の問題は、8つのビューページをタブレイアウトで作成したことです。 3つのビューページが必要だとしますが、残りのページを削除したいとします。forループループ

これは私のコードをタブを追加するためのものですが、残りのタブを削除するためにループを使用していますが、エラー"無効なインデックス6、サイズは6"となり、結果的に要求を満たしません。 forループ機能をどのように調整するのですか?

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

'i'のポイントは何ですか? 'for(; ans <=; 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

あなたは3を使用することを意味しますか使用する=またはちょうど>は十分です – sasikumar

+0

@アンドレアスは、 –

+0

の前にコメントで言った、作業。 – AnthonyTang

0

私はあなたがListを使用していたドロドロと思います。

iの要素をListから削除すると、インデックスがiより大きい要素がシフトされます。

ans6になると、Listには6つの要素があり、そのインデックスは0 to 5になります。

関連する問題