java.lang.RuntimeException:无法启动活动java.lang.NullPointerException

时间:2015-01-21 12:03:19

标签: java android

当我试图抛出这个错误面临的时候。使用java Null指针异常

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

的行中得到NullPointerException
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));
    }

3 个答案:

答案 0 :(得分:0)

我认为您正在使用没有ActionBar的主题。正如您在文档here中看到的那样,当您的Activity没有ActionBar时,它会返回null。检查您的AndroidManifest并使用ActionBar主题。

答案 1 :(得分:0)

您的活动是否有操作栏?正如getActionBar()的文档说它返回The Activity's ActionBar, or null if it does not have one.

答案 2 :(得分: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(); 并始终使用此代码获取操作栏。 现在它不会给出错误。享受