Back to project page FlibityBoop.
The source code is released under:
Apache License
If you think the Android project FlibityBoop listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/** * IFT2905 : Interface personne machine/* w ww. j ava2s .c o m*/ * Projet de session: FlibityBoop. * Team: Vincent CABELI, Henry LIM, Pamela MEHANNA, Emmanuel NOUTAHI, Olivier TASTET * @author Emmanuel Noutahi, Vincent Cabeli */ package com.maclandrol.flibityboop; import android.app.ActionBar; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.widget.TextView; /** * Activit des favoris, utilise un viewpager avec des fragments * Une page pour les TVShow et une seconde pour les Films * Ce code est fortement inspir de celui du dmo */ public class FavoriteActivity extends BaseActivity { SimplePagerAdapter adapter; ViewPager pager; TextView t; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_favorites); // On utilise un PagerAdapter pour insrer des pages dans le ViewPager adapter = new SimplePagerAdapter(getSupportFragmentManager()); t = (TextView) findViewById(R.id.fav_type_titre); pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(adapter); // On utilise les tabs de l'action bar, donc il faut manuellement // initialiser ces tabs final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); ActionBar.TabListener tabListener = new ActionBar.TabListener() { /* * onTabSelected est appel lorsque l'usager appuie sur * l'un des tabs de l'action bar. On doit donc changer * la page du ViewPager. * */ @Override public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { pager.setCurrentItem(tab.getPosition()); if(tab.getPosition()==1) t.setText(R.string.fav_mov); else t.setText(R.string.fav_show); } @Override public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { } @Override public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { } }; // On ajoute manuellement les tabs, mais on pourrait aussi // combiner la cration des tabs avec le ViewPager. // On utilise getPageTitle pour dterminer les titres // de chaque page automatiquement. for (int i = 0; i < adapter.getCount(); i++) { actionBar.addTab( actionBar.newTab() .setText(adapter.getPageTitle(i)) .setTabListener(tabListener)); } // l'inverse de ci-haut, on veut aussi mettre jour // le tab slectionn de l'action bar lorsqu'on change // la page dans le ViewPager. pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { getActionBar().setSelectedNavigationItem(position); if (position == 1) t.setText(R.string.fav_mov); else t.setText(R.string.fav_show); } }); } /* * * Le SimplePagerAdapter est le contrleur principal du ViewPager. * C'est ici qu'on dtermine le contenu du ViewPager. * * Comme nous avons peu de pages, on utilise un FragmentPagerAdapter. * Cette variante du PagerAdapter conserve en mmoire les fragments au * complet, y compris les layouts. Ceci augmente les performances, mais * aussi l'usage mmoire. * */ private class SimplePagerAdapter extends FragmentPagerAdapter { public SimplePagerAdapter(FragmentManager fm) { super(fm); } /* * La mthode getItem est la mthode la plus importante du PagerAdapter. * C'est ici qu'on initialise les fragments sur demande. * */ @Override public Fragment getItem(int i) { if(i==1){ MovieListFragment f = new MovieListFragment(); Bundle args = new Bundle(); args.putString("trie", "alphabetic"); f.setArguments(args); return f; } return new TVListFragment(); } /* * Donne le nombre de pages. Ceci pourrait tre variable, mais * est gnralement fixe. Rduire le nombre de pages peut * tre problmatique. * */ @Override public int getCount() { return 2; } /* * Retourne le titre d'une page. Ce titre peut tre utilis pour, * par exemple, afficher le titre de la page dans l'action bar. * Le PagerTabStrip/PagerTitleStrip utilise getPageTitle pour * afficher les titres. * */ @Override public CharSequence getPageTitle(int position) { if(position==1) return "Movies"; else return "TV Shows"; } } }