简体   繁体   中英

Set Up Tab Icons Error

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);
        }}}

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.design.widget.TabLayout$Tab android.support.design.widget.TabLayout$Tab.setIcon(int)' on a null object reference at com.example.dell.AllFragments.setupTabIcons(AllFragments.java:47)

I am trying to create a simple tabLayout with icons but the application keeps crushing and Idk why,there are two errors one is this and the second one is in my main class

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

Can sb tell me where my error is?Thanks in Advance!

You have forgotten to call setupViewPager(viewPager); on onCreateView

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM