When switching Tab, throws an error:
E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NullPointerException at android.support.v4.app.FragmentStatePagerAdapter.instantiateItem(FragmentStatePagerAdapter.java:120) at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1004) at android.support.v4.view.ViewPager.populate(ViewPager.java:1218) at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:663) at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:625) at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:606) at com.example.danilshik.testapplication.activities.SmartphoneActivity.onTabSelected(SmartphoneActivity.java:51) at android.support.design.widget.TabLayout.dispatchTabSelected(TabLayout.java:1165) at android.support.design.widget.TabLayout.selectTab(TabLayout.java:1158) at android.support.design.widget.TabLayout.selectTab(TabLayout.java:1128) at android.support.design.widget.TabLayout$Tab.select(TabLayout.java:1427) at android.support.design.widget.TabLayout$TabView.performClick(TabLayout.java:1537) at android.view.View$PerformClick.run(View.java:16966) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) The code that I took from the example:
public class SmartphoneActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener { private TabLayout tabLayout; private ViewPager viewPager; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_smartphone); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); tabLayout = (TabLayout) findViewById(R.id.tabLayout); tabLayout.addTab(tabLayout.newTab().setText("Главная")); tabLayout.addTab(tabLayout.newTab().setText("Дисплей")); tabLayout.addTab(tabLayout.newTab().setText("Структура")); tabLayout.addTab(tabLayout.newTab().setText("Оборудование")); tabLayout.addTab(tabLayout.newTab().setText("Камера")); tabLayout.addTab(tabLayout.newTab().setText("Передача данных")); tabLayout.addTab(tabLayout.newTab().setText("Аккумулятор")); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); viewPager = (ViewPager) findViewById(R.id.pager); SmartphonePager adapter = new SmartphonePager(getSupportFragmentManager(),tabLayout.getTabCount()); viewPager.setAdapter(adapter); tabLayout.addOnTabSelectedListener(this); } @Override public void onTabSelected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } } UPD: SmartphonePager:
public class SmartphonePager extends FragmentStatePagerAdapter { int tabCount; public SmartphonePager(FragmentManager fm, int tabCount) { super(fm); this.tabCount = tabCount; } @Override public Fragment getItem(int position) { switch (position){ case 0: SmartphoneMainTab smartphoneMainTab = new SmartphoneMainTab(); return smartphoneMainTab; case 1: SmartphoneDisplayTab smartphoneDisplayTab = new SmartphoneDisplayTab(); return smartphoneDisplayTab; default: return null; } } @Override public int getCount() { return tabCount; }
(FragmentStatePagerAdapter.java:120). Look in the adapter - Jarvis_J pmaddNewItem(ViewPager.java:1004)- Jarvis_J