2016-11-29 11 views
0

タブレイアウトで特定のタブを無効にする必要がありますが、アプリケーションがクラッシュします。nullオブジェクトリファレンスで仮想メソッド '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

あなたの 'switch'ステートメントは、' case'sの後に 'break'がありません。 –

+0

私はbreak文で試しましたが、動作しません –

+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場合がnullオブジェクト参照であるtabLayout.getChildAt(2)、しようとする介して入ることであると思われます。

+0

tryステートメントでもtry文を試してみましたが、そのエラーを表示しています –

+0

ヌルオブジェクト参照で仮想メソッド 'void android.view.View.setEnabled(boolean)'を呼び出そうとしました –

+0

おそらく、 'tabLayout'の3番目の子は実際には3番目のタブ。ケース2を削除しても問題が発生しないことを確認しましたか? –

関連する問題

 関連する問題