2016-11-29 5 views
0

Мне нужно отключить определенную вкладку в макете вкладки, но приложение сработает.Как вызвать виртуальный метод 'void android.view.View.setEnabled (boolean)' на ссылке нулевого объекта

public void onTabSelected(TabLayout.Tab tab) { 
    switch (tab.getPosition()){ 
     case 0: tabLayout.getChildAt(0).setEnabled(true); 
       viewPager.setCurrentItem(tab.getPosition()); 
     case 2: tabLayout.getChildAt(2).setEnabled(true); 
       viewPager.setCurrentItem(tab.getPosition()); 
    } 
} 
+0

В '' '' '' '' '' '' '' '' прерывается после 'case'. –

+0

Я пробовал с заявлением о перерыве, но его не работает –

+0

Пожалуйста, напишите сообщение об ошибке и любой дополнительный код, необходимый для воспроизведения проблемы. См. Также [MCVE]. –

ответ

0

Мне кажется, что вам просто не хватает break заявлений.

public void onTabSelected(TabLayout.Tab tab) { 
    switch (tab.getPosition()){ 
     case 0: tabLayout.getChildAt(0).setEnabled(true); 
       viewPager.setCurrentItem(tab.getPosition()); 
       break; 
     case 2: tabLayout.getChildAt(2).setEnabled(true); 
       viewPager.setCurrentItem(tab.getPosition()); 
       break; 
    } 
} 

ошибка, кажется, что 0 дело проваливается, чтобы попытаться tabLayout.getChildAt(2), что нулевая ссылка на объект.

+0

i попробуйте также с инструкцией break, но ее ошибка отображения –

+0

Попытка вызвать виртуальный метод 'void android.view.View.setEnabled (boolean)' на ссылке нулевого объекта –

+0

Возможно, тогда третий ребенок 'tabLayout' на самом деле не является 3-я вкладка. Вы подтвердили, что проблема не возникает, если вы удалите случай 2? –

 Смежные вопросы

  • Нет связанных вопросов^_^