У меня есть набор вкладок в Android Studio.Все они работают нормально, но ни один из них не показывает никакого контента, хотя у них есть контент.Поэтому я немного покопался на этом сайте и обнаружил Проблемы, с которыми пользователи сталкиваются с фрагментами
Так что я последовал совету, который дал пользователь.Но похоже, что мое приложение вылетает из-за исключения нулевого указателя.Кто-нибудь может помочь мне определить ошибку, пожалуйста:
MainActivity.java
public class MainActivity extends AppCompatActivity implements Photos.OnFragmentInteractionListener, About.OnFragmentInteractionListener, Watch.OnFragmentInteractionListener{
private TabLayout myTabLayOut;
private ViewPager viewPager;
private TabsPagerAdapter tabsPagerAdapter;
public MainActivity()
{
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_content);
myTabLayOut = findViewById(R.id.tabLayout);
myTabLayOut.addTab(myTabLayOut.newTab().setText("Photos"));
myTabLayOut.addTab(myTabLayOut.newTab().setText("About"));
myTabLayOut.addTab(myTabLayOut.newTab().setText("Watch"));
myTabLayOut.setTabGravity(TabLayout.GRAVITY_FILL);
myTabLayOut.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) {
}
});
viewPager = findViewById(R.id.pager);
//Item 0 being the photos fragment. Just for testing for the time being. WHERE The error happens
tabsPagerAdapter = new TabsPagerAdapter(tabsPagerAdapter.getItem(0).getTargetFragment(), myTabLayOut.getTabCount());
viewPager.setAdapter(tabsPagerAdapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(myTabLayOut));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.my_menu,menu);
return true;
}
@Override
public void onFragmentInteraction(Uri uri) {
}
}
TabsPagerAdapter.java
public class TabsPagerAdapter extends FragmentPagerAdapter {
//A field to hold the number of tabs
private int numberOfTabs;
public TabsPagerAdapter(Fragment fragmentManager, int numberOfTabs)
{
super(fragmentManager.getChildFragmentManager());
this.numberOfTabs = numberOfTabs;
}
//Which item to return depending on the position
@Override
public Fragment getItem(int position) {
switch (position)
{
case 0:
return new Photos();
case 1:
return new About();
case 2:
return new Watch();
default:
return null;
}
}
@Override
public int getCount() {
return numberOfTabs;
}
}