简体   繁体   English

设置标签图标错误

[英]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) 由以下原因引起:java.lang.NullPointerException:尝试在com上的空对象引用上调用虚拟方法'android.support.design.widget.TabLayout $ Tab android.support.design.widget.TabLayout $ Tab.setIcon(int)' .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 我试图用图标创建一个简单的tabLayout,但是应用程序不断崩溃,为什么会出现Idk,有两个错误,一个是这个,第二个是在我的主类中

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

Can sb tell me where my error is?Thanks in Advance! 可以告诉我我的错误在哪里吗?谢谢!

You have forgotten to call setupViewPager(viewPager); 您忘记了调用setupViewPager(viewPager); on onCreateView onCreateView

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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