Для петлевой петли

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

Это мой код для добавления вкладки, и я использую for loop для удаления оставшихся вкладок, но есть ошибка «недопустимый индекс 6, размер 6», и в результате он не выполняет мое требование. Как настроить функцию 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 ответа

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

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

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

  2. 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
    }