2017-08-04 57 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

那是一個空指針錯誤發生時,您應檢查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 
} 

它不應該再次提供空指針異常。但是您必須檢查您的XML佈局以確保活動xml文件中有一個操作欄