2017-08-04 10 views
0

私はスワイプタブを作成しています、その押しつぶす あなたはエラーがあるスワイプタグ、アクションバーのエラー

import android.app.ActionBar; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentTransaction; 

import android.os.Bundle; 

public class MainActivity extends FragmentActivity implements ActionBar.TabListener{ 

    ActionBar actionBar; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     actionBar=getActionBar(); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     actionBar.addTab(actionBar.newTab().setText("Java").setTabListener(this)); 
     actionBar.addTab(actionBar.newTab().setText("PHP").setTabListener(this)); 
     actionBar.addTab(actionBar.newTab().setText(".Net").setTabListener(this)); 

    } 

    @Override 
    public void onTabSelected(ActionBar.Tab tab, android.app.FragmentTransaction ft) { 

    } 

    @Override 
    public void onTabUnselected(ActionBar.Tab tab, android.app.FragmentTransaction ft) { 

    } 

    @Override 
    public void onTabReselected(ActionBar.Tab tab, android.app.FragmentTransaction ft) { 

    } 
} 

を助けることができます:

Attempt to invoke virtual method 
'void android.app.ActionBar.setNavigationMode(int)' on a null object reference 

答えて

0

がNULLポインタエラーが発生して厥、あなたがチェックする必要がありますgetActionBar()の結果がnullを返さないことを確認します。それ以下にチェックしてください

public class MainActivity extends FragmentActivity implements ActionBar.TabListener{ 

    ActionBar actionBar; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     if (getActionBar() != null){ 
      actionBar=getActionBar(); 
      actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
      actionBar.addTab(actionBar.newTab().setText("Java").setTabListener(this)); 
      actionBar.addTab(actionBar.newTab().setText("PHP").setTabListener(this)); 
      actionBar.addTab(actionBar.newTab() .setText(".Net").setTabListener(this)); 
     } 
    } 
    //your initialization continues 
} 

もう一度nullポインタ例外を返すべきではありません。しかし、XMLレイアウトをチェックして、アクティビティXMLファイルにアクションバーがあることを確認する必要があります

関連する問題