簡體   English   中英

將標簽添加到操作欄

[英]Adding tabs to action bar

為什么這段代碼崩潰我完全按照Google的指南執行此操作,但是我在行上卻得到了空指針異常

 final ActionBar actionBar = getActionBar();

這是完整的代碼。 我正是按照已鏈接到此處http://developer.android.com/training/implementing-navigation/lateral.html的 Google開發人員頁面進行此操作

    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    setContentView(R.layout.pager_view);  

    //TabSetup
    tabPagerAdapter = new TabPagerAdapter(getSupportFragmentManager());
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(tabPagerAdapter);
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {

        @Override
        public void onPageSelected(int position) {

            getActionBar().setSelectedNavigationItem(position);
        }


    });

    final ActionBar actionBar = getActionBar();
    assert actionBar != null;
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);


    ActionBar.TabListener tabListener = new ActionBar.TabListener() {


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

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

        }

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

        }
    };

    //ADD THE APP'S 3 TABS
    actionBar.addTab(actionBar.newTab().setText("News").setTabListener(tabListener));
    actionBar.addTab(actionBar.newTab().setText("Surveys").setTabListener(tabListener));
    actionBar.addTab(actionBar.newTab().setText("Connect").setTabListener(tabListener));

}

請注意,Android 5.0不推薦使用操作欄選項卡。

除此之外,您可能正在使用沒有本機操作欄的主題,例如Theme.AppCompat 如果將appcompat-v7Theme.AppCompat一起Theme.AppCompat ,請確保從ActionBarActivity繼承,然后使用getSupportActionBar()而不是getActionBar()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM