List of usage examples for android.app ActionBar.TabListener ActionBar.TabListener
ActionBar.TabListener
From source file:com.afollestad.overhear.ui.OverviewScreen.java
/** * Sets up the action bar tabs and the view pager. *//*from ww w . ja v a2s . c om*/ private void setupTabs() { ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(getFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setOffscreenPageLimit(5); mViewPager.setAdapter(mSectionsPagerAdapter); mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { getActionBar().setSelectedNavigationItem(position); } }); ActionBar.TabListener mTabListener = new ActionBar.TabListener() { @Override public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { } @Override public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { invalidateOptionsMenu(); mViewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { Fragment frag = getFragmentManager().findFragmentByTag("page:" + tab.getPosition()); if (frag instanceof ListFragment) { if (frag.getView() != null) ((ListFragment) frag).getListView().setSelection(0); } else if (frag instanceof OverhearGridFragment) { if (frag.getView() != null) ((OverhearGridFragment) frag).getListView().setSelection(0); } } }; for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) actionBar.addTab( actionBar.newTab().setText(mSectionsPagerAdapter.getPageTitle(i)).setTabListener(mTabListener)); actionBar.setSelectedNavigationItem(Store.i(this, "focused_tab", 2)); }
From source file:app.screen.MyActivity.java
/** * For more info on using view pager and tabs and action bar, <a href="http://goo.gl/7CsM9">checkout this article</a> * in the Android developer site's "Training" section. * <p/>// ww w .j a v a2s. c om * For more info on ViewPager, <a href="http://goo.gl/NgCUO">read this article</a>. */ private void _setupFragments() { // set up the action bar final ActionBar actionBar = getActionBar(); actionBar.setHomeButtonEnabled(false); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // create the FragmentPagerAdapter FragmentPagerAdapter fragmentPagerAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { try { return Fragments.values()[position].aClass.getConstructor(MyActivity.class) .newInstance(MyActivity.this); } catch (Exception e) { AndroidUtils.logErr(IconPaths.MyApp, "MyActivity - problem creating fragments", e); // something has gone wrong - this shouldn't happen return new Fragment() { /** make a fragment to house {@link R.layout#error_fragment} */ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return super.onCreateView(inflater, container, savedInstanceState); } }; } } @Override public int getCount() { return Fragments.values().length; } public CharSequence getPageTitle(int position) { try { return Fragments.values()[position].title; } catch (Exception e) { return "N/A"; } } }; // Set up the ViewPager, attaching the adapter and setting up a listener for when the // user swipes between sections. final ViewPager viewPager = (ViewPager) findViewById(R.id.pager); viewPager.setOffscreenPageLimit(Fragments.values().length); // keep all the pages in memory viewPager.setAdapter(fragmentPagerAdapter); viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { /** * When swiping between different app sections, select the corresponding tab. * We can also use ActionBar.Tab#select() to do this if we have a reference to the Tab. */ @Override public void onPageSelected(int position) { super.onPageSelected(position); actionBar.setSelectedNavigationItem(position); } }); // create TabListener ActionBar.TabListener tabListener = new ActionBar.TabListener() { @Override public void onTabSelected(ActionBar.Tab tab, FragmentTransaction transaction) { viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction transaction) { } @Override public void onTabReselected(ActionBar.Tab tab, FragmentTransaction transaction) { } }; // setup tabs for (int i = 0; i < fragmentPagerAdapter.getCount(); i++) { actionBar.addTab( actionBar.newTab().setText(fragmentPagerAdapter.getPageTitle(i)).setTabListener(tabListener)); } }