设置选项卡图标错误

时间:2018-03-24 18:17:15

标签: android android-layout android-fragments

public class AllFragments extends Fragment {
    private int[] tabIcons = {
            R.mipmap.ic_home,
            R.mipmap.search_icon,
//            R.mipmap.ic_msg,
    };
    private TabLayout tabLayout;
    public static int int_items = 2 ;
    private ViewPager viewPager;

    public AllFragments() {
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View x = inflater.inflate(R.layout.fragment_all_fragments, container, false);
            tabLayout = (TabLayout) x.findViewById(R.id.tabLayout);
            viewPager = (ViewPager) x.findViewById(R.id.viewPG);
            tabLayout.setupWithViewPager(viewPager);
                    setupTabIcons();

            return x;
        }
    private void setupTabIcons() {
        tabLayout.getTabAt(0).setIcon(tabIcons[0]);
        tabLayout.getTabAt(1).setIcon(tabIcons[1]);
    }
    private void setupViewPager(ViewPager viewPager) {
        AllFragments.ViewPagerAdapter adapter = new AllFragments.ViewPagerAdapter(getFragmentManager());
        adapter.addFragment(new HomeF(), "");
        adapter.addFragment(new SearchFragment(), "");
        viewPager.setAdapter(adapter);
    }


    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(android.support.v4.app.FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

        @Override
        public int getCount() {
            return mFragmentList.size();
        }

        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }
        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }}}
  

引起:java.lang.NullPointerException:尝试调用虚拟   方法&#39; android.support.design.widget.TabLayout $ Tab   android.support.design.widget.TabLayout $ Tab.setIcon(INT)&#39;在null   对象参考   com.example.dell.AllFragments.setupTabIcons(AllFragments.java:47)

我正在尝试使用图标创建一个简单的tabLayout,但应用程序一直在粉碎和Idk为什么,有两个错误,一个是这个,第二个是在我的主类

onStart() {
        super.onStart();
        auth.addAuthStateListener(authListener);}

可以告诉我我的错误在哪里吗?先谢谢!

1 个答案:

答案 0 :(得分:2)

您忘记在setupViewPager(viewPager);

上致电onCreateView
相关问题