Android Studio: при работе с TabLayout произошло исключение нулевого указателя - PullRequest
0 голосов
/ 26 марта 2020

Это мой код и произошла ошибка

Я новичок и пытался поработать над макетом вкладки. Приложение не выдает никаких ошибок при компиляции, но вылетает на полпути. Мой основной код активности выглядит следующим образом:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TabLayout tabLayout= findViewById(R.id.tab_layout);
    TabItem t= findViewById(R.id.t1);
    final ViewPager viewPager= findViewById(R.id.pager);
   new PageAdapter(getSupportFragmentManager(),4);


       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) {

           }

       });


}

Пожалуйста, помогите мне, поскольку я должен представить это как мое задание.

1 Ответ

0 голосов
/ 26 марта 2020

Вам нужно сделать объявление вне функции oncreate, чтобы сделать его глобальным и видимым другими методами, затем выполнить инициализацию внутри следующим образом:

TabLayout tabLayout;
TabItem t;
ViewPager viewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tabLayout= findViewById(R.id.tab_layout);
t= findViewById(R.id.t1);
viewPager= findViewById(R.id.pager);
new PageAdapter(getSupportFragmentManager(),4);
...