2015-01-21 112 views
-2

当我试图抛出示例面临这个错误。与java空指针异常java.lang.RuntimeException:无法启动活动java.lang.NullPointerException

我得到NullPointerException在这行actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

TabAdapter = new TabPagerAdapter(getSupportFragmentManager()); 
     Tab = (ViewPager) findViewById(R.id.pager); 
     Tab.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 
      @Override 
      public void onPageSelected(int position) { 
       actionBar = getActionBar(); 
       actionBar.setSelectedNavigationItem(position); 
      } 
     }); 
     Tab.setAdapter(TabAdapter); 
     actionBar = getActionBar(); 
     // Enable Tabs on Action Bar 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     ActionBar.TabListener tabListener = new ActionBar.TabListener() { 
      @Override 
      public void onTabReselected(android.app.ActionBar.Tab tab, 
        FragmentTransaction ft) { 
       // TODO Auto-generated method stub 
      } 

      @Override 
      public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { 
       Tab.setCurrentItem(tab.getPosition()); 
      } 

      @Override 
      public void onTabUnselected(android.app.ActionBar.Tab tab, 
        FragmentTransaction ft) { 
       // TODO Auto-generated method stub 
      } 
     }; 
     // Add New Tab 
     actionBar.addTab(actionBar.newTab().setText("Android").setTabListener(tabListener)); 
     actionBar.addTab(actionBar.newTab().setText("iOS").setTabListener(tabListener)); 
     actionBar.addTab(actionBar.newTab().setText("Windows").setTabListener(tabListener)); 
    } 
+0

发布堆栈跟踪请 – 2015-01-21 12:05:11

+0

所以'actionBar'为空,请检查,什么是最低sdk版本?如果你的版本低于14,你必须使用'getSupportActionBar' – 2015-01-21 12:05:12

回答

0

我想你使用的是没有ActionBar的主题。正如你可以在文档here上看到的,当你的Activity没有ActionBar时它会返回null。检查你的AndroidManifest并在ActionBar中使用主题。

0

你的活动是否有一个行动栏?由于getActionBar()的文档说它返回The Activity's ActionBar, or null if it does not have one.

0

通过ActionBarActivity扩展您的活动。

public class MainActivity extends ActionBarActivity{ 
    private android.support.v7.app.ActionBar actionBar; 

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

    actionBar = getSupportActionBar(); 
    } 

替换您的 actionBar = getActionBar(); 与 actionBar = getSupportActionBar(); 并始终使用此代码获取操作栏。 现在它不会给错误。享受

相关问题