0

Моя проблема в том, что я создал 8 viewpager в макете вкладок. Предположим, мне нужны 3 страницы просмотра, которые мне нужны, но я хочу удалить остальные.For loop Looping

Это мой код для добавления вкладок, и я использую цикл для удаления остальных вкладок, но есть ошибка «Недопустимый индекс 6, размер 6» и, как результат, он не выполняет мое требование. Как отрегулировать функцию loop for looping.

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 (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

@ Андреас сказал, что в комментарии до –

+0

Хорошо, спасибо вам Работа. – AnthonyTang

0

Я думаю, что вы Кашицу использовали List.

При снятии элемента с индексом i от List элементы, имеющие индекс больше i, сдвинуты.

В вашем случае, когда ans стать 6, List имеет шесть элемента и его индекс может быть 0 to 5.