Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在表格布局中选择选项卡时发生IndexOutOfBoundsException_Java_Android - Fatal编程技术网

Java 在表格布局中选择选项卡时发生IndexOutOfBoundsException

Java 在表格布局中选择选项卡时发生IndexOutOfBoundsException,java,android,Java,Android,当我想在表格布局中选择选项卡时,我得到索引自动边界异常错误: 这是initTablayout函数,它在onCreate方法中调用: //======================================== Init Tablayout and view pager private void initTabLayout() { mainActivityViewPager = (ViewPager) findViewB

当我想在
表格布局中选择选项卡时,我得到
索引自动边界异常
错误:
这是initTablayout函数,它在
onCreate
方法中调用:

       //======================================== Init Tablayout and view pager
            private void initTabLayout() {
                mainActivityViewPager = (ViewPager) findViewById(R.id.view_pager_main_activity);


                mainActivityTabLayout = (TabLayout)findViewById(R.id.tab_layout_main_activity);
                TabLayout.Tab tab = mainActivityTabLayout.getTabAt(1);
                tab.select();

                FragmentManager manager = getSupportFragmentManager();
                MainActivityPagerAdapter adapter = new MainActivityPagerAdapter(manager);
                mainActivityViewPager.setAdapter(adapter);
                mainActivityTabLayout.setupWithViewPager(mainActivityViewPager);
                mainActivityViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mainActivityTabLayout));
                mainActivityTabLayout.setTabsFromPagerAdapter(adapter);
            }
我在
getTabAt(1)
方法上选择所选选项卡的索引时出现了这个错误,我在
PagerAdapter
类上有三个选项卡:

public class MainActivityPagerAdapter extends FragmentStatePagerAdapter {

        //============================================ Constructor

        public MainActivityPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        //============================================ GetItem Method ()
        @Override
        public Fragment getItem(int position) {
            Fragment frag = null;
            switch (position) {
                case 0:
                    frag = new Fragment_one();
                    break;
                case 1:
                    frag = new Fragment_two();
                    break;
                case 2:
                    frag = new Fragment_three();
                    break;

            }
            return frag;
        }

        //============================================= GetCount Method ()
        @Override
        public int getCount() {
            return 3;
        }

        //============================================= GetPageTitle

        @Override
        public CharSequence getPageTitle(int position) {
            String title = "";
            switch (position) {
                case 0:
                    title = "اول ";
                    break;
                case 1:
                    title = "دوم ";
                    break;
                case 2:
                    title = "سوم ";
                    break;

            }

            return title;
        }
    }
完全错误为:

 java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

您似乎忘记将选项卡添加到您的
main活动表布局
,因此您的
表布局
将包含0项。因此,当您访问tab1时,您得到了
IndexOutOfBoundsException

mainActivityTabLayout.addTab(tabLayout.newTab().setText("1"));
mainActivityTabLayout.addTab(tabLayout.newTab().setText("2"));
mainActivityTabLayout.addTab(tabLayout.newTab().setText("3"));

您似乎忘记将选项卡添加到您的
main活动表布局
,因此您的
表布局
将包含0项。因此,当您访问tab1时,您得到了
IndexOutOfBoundsException

mainActivityTabLayout.addTab(tabLayout.newTab().setText("1"));
mainActivityTabLayout.addTab(tabLayout.newTab().setText("2"));
mainActivityTabLayout.addTab(tabLayout.newTab().setText("3"));
选择tab3

请执行以下操作:

mainActivityTabLayout.addTab(tabLayout.newTab().setText("3"),true);
选择tab3

请执行以下操作:

mainActivityTabLayout.addTab(tabLayout.newTab().setText("3"),true);

尝试获取
mainActivityTableLayout.setTabsFromPagerAdapter(适配器)下面的选项卡iIt:java.lang.IndexOutOfBoundsException:索引0无效,大小为0为什么要使用不推荐的API…您还没有添加要查看的选项卡pager@Rohan哪一个是不推荐使用的API?让我好奇。尝试获取下面的选项卡
mainActivityTableLayout.setTabsFromPagerAdapter(适配器)iIt:java.lang.IndexOutOfBoundsException:索引0无效,大小为0为什么要使用不推荐的API…您还没有添加要查看的选项卡pager@Rohan哪一个是不推荐使用的API?我很好奇。我的主要目的是选择表格布局中的最后一个选项卡,但我不知道如何解决,您的解决方案解决了索引错误,但最后一个选项卡未选择。无论如何,谢谢你的解答。我的主要目的是在我的表格中选择最后一个选项卡,但我不知道如何解决,你的解答解决了索引错误,但是,最后一个选项卡没有选择。不管怎样,谢谢你的安慰