In the app, I'm trying to connect tabLayouty snippets. Some methods were marked obsolete and I replaced them with recommended ones, while importing also changed. As a result, I got confused with the libraries and now the application works exactly until the code is registered. There are no errors. I mean that the problem is in imports, with outdated methods everything worked. Help me please.
import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.design.widget.TabLayout; import android.support.v4.app.FragmentManager; import android.support.v4.view.ViewPager; import android.view.View; import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import rodionov.lll.bbb.R; import rodionov.lll.bbb.adapter.TabAdapter; public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { FragmentManager fragmentManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setUI(); } private void setUI() { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); TabLayout tabLayout = findViewById(R.id.tab_layout); tabLayout.addTab(tabLayout.newTab().setText(R.string.poem_tab)); tabLayout.addTab(tabLayout.newTab().setText(R.string.favorite_tab)); final ViewPager viewPager = (ViewPager) findViewById(R.id.pager); TabAdapter tabAdapter = new TabAdapter(fragmentManager, 2); // viewPager.setAdapter(tabAdapter); // viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); // tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { // @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) { // // } // }); } import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import rodionov.lll.bbb.fragment.FavoriteFragment; import rodionov.lll.bbb.fragment.PoemFragment; public class TabAdapter extends FragmentStatePagerAdapter { private int numberOfTabs; public TabAdapter(FragmentManager fm, int numberOfTabs) { super(fm); this.numberOfTabs = numberOfTabs; } @Override public Fragment getItem(int position) { switch (position) { case 0: return new PoemFragment(); case 1: return new FavoriteFragment(); default: return null; } } @Override public int getCount() { return numberOfTabs; } } Well, the code of one of the fragments. while there is nothing
import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import rodionov.lll.bbb.R; public class FavoriteFragment extends Fragment { public FavoriteFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_favorite, container, false); } } dependencies:
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support:design:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support:support-v4:27.1.1' implementation 'com.android.support:recyclerview-v7:27.1.1' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.android.support:support-v13:27.1.1' Logs: FATAL EXCEPTION: main
java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.FragmentTransaction android.support.v4.app.FragmentManager.beginTransaction()' on a null object reference at android.support.v4.app.FragmentStatePagerAdapter.instantiateItem(FragmentStatePagerAdapter.java:106) at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1004) at android.support.v4.view.ViewPager.populate(ViewPager.java:1152) at android.support.v4.view.ViewPager.populate(ViewPager.java:1086) at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1616) at android.view.View.measure(View.java:19244) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6113) at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:739) at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:811)
TabAdapter tabAdapter = new TabAdapter(fragmentManager, 2);onTabAdapter tabAdapter = new TabAdapter(getSupportFragmentManager, 2);- Yuriy SPb ♦