2017-05-02 24 views
0

私のアプリケーションを実行すると、ヌルオブジェクト参照で仮想メソッドを呼び出そうとするエラーが表示されます。そしてエラーラインに従って、メソッドはsetVisibiltyメソッドです。 重要なコードは次のとおりエラー:ヌルオブジェクト参照で仮想メソッドを呼び出そうとします

public class MainActivity extends ActionBarActivity { 
>  private Button btn; 
>   private Button btn1; 
>   private Button btn3; 
>  
>  
>  
>  tabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager){ 
>     @Override 
>     public void onTabSelected(TabLayout.Tab tab) { 
>  
>      switch (tab.getPosition()) { 
>       
>       case 0: 
>        btn = (Button) findViewById(R.id.button15); 
>  btn.setVisibility(View.GONE); 
>        break; 
>  
>       case 1: 
>        btn1 = (Button) findViewById(R.id.button16); 
>        btn1.setVisibility(View.GONE); 
>        break; 
>  
>       case 2: 
>  btn3 = (Button) findViewById(R.id.button17); 
>        btn3.setVisibility(View.GONE); 
>        break; 
>  
>  
>  
>       } 
>      super.onTabSelected(tab); 
>  
>     } 
>    } 
>   ); 
>  } 

エラー方法はsetVisibilty法です。 ご協力いただければ幸いです。ありがとう

+2

それはどんなラインになっていますか? – Phix

答えて

0

より具体的にすることができます私は完全に私のために働いているコードは、より具体的なエラーができます。ここに私の作業コードです。 addOnTabSelectedListener()は、setOnTabSelectedListener()のように置き換えることができます。

public class MainActivity extends ActionBarActivity { 

    private Button btn; 
    private Button btn1; 
    private Button btn3; 
    private TabLayout tabLayout; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     tabLayout = (TabLayout) findViewById(R.id.tab_layout); 

     tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 
       visibilityChange(tab); 
      } 

      @Override 
      public void onTabUnselected(TabLayout.Tab tab) { 

      } 

      @Override 
      public void onTabReselected(TabLayout.Tab tab) { 
       visibilityChange(tab); 
      } 
     }); 
    } 

    private void visibilityChange(TabLayout.Tab tab) { 
     switch (tab.getPosition()) { 
      case 0: 
       btn = (Button) findViewById(R.id.button); 
       if (btn.getVisibility() == View.GONE) 
        btn.setVisibility(View.VISIBLE); 
       else 
        btn.setVisibility(View.GONE); 
       break; 

      case 1: 
       btn1 = (Button) findViewById(R.id.button2); 
       if (btn1.getVisibility() == View.GONE) 
        btn1.setVisibility(View.VISIBLE); 
       else 
        btn1.setVisibility(View.GONE); 
       break; 

      case 2: 
       btn3 = (Button) findViewById(R.id.button3); 
       if (btn3.getVisibility() == View.GONE) 
        btn3.setVisibility(View.VISIBLE); 
       else 
        btn3.setVisibility(View.GONE); 
       break; 
     } 
    } 
} 
関連する問題