我试图在 viewpager 中多次使用一个片段,我正在尝试使用 ViewPager 构建一个动态更新的 UI。我想使用相同的设计,基本上是相同的片段,每个页面都有不同的数据,但我不知道该怎么做。有什么建议吗?这可能是Adapter、FragmentActivity和fragment
public MonPagerAdapter(FragmentManager fm, List<Fragment>fragments)
{
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position)
{
return this.fragments.get(position);
}
@Override
public int getCount()
{
return this.fragments.size();
}
@SuppressWarnings("deprecation")
@Override
public Object instantiateItem(View pager, int position)
{
//CalendrierMens cm = new CalendrierMens();
CalendrierMens cm = new CalendrierMens();
cm.date_actuelle.set(cm.date_actuelle.get(Calendar.MONTH), 1);
cm.updateTable(cm.date_actuelle.get(Calendar.YEAR), cm.date_actuelle.get(Calendar.MONTH), cm.date_actuelle.get(Calendar.DAY_OF_MONTH));
((ViewPager)pager).addView(CalendrierMens.newInstance().getView());
return super.instantiateItem(pager, position);
}
super.onActivityCreated(savedInstanceState);
mois_annee = (TextView)getActivity().findViewById(R.id.mois_annee);
mois_annee.setText(getMonthForInt(date_actuelle.get(Calendar.MONTH)+1)+" "+date_actuelle.get(Calendar.YEAR));
this.creerGrille();
this.updateTable(date_actuelle.get(Calendar.YEAR), date_actuelle.get(Calendar.MONTH), date_actuelle.get(Calendar.DAY_OF_MONTH));
}
public static CalendrierMens newInstance()
{
CalendrierMens fragment = new CalendrierMens();
//Bundle args = new Bundle();
//args.put
//fragment.setArguments(args);
return fragment;
}
super.onCreate(savedInstanceState); super.setContentView(R.layout.viewpager);
// Création de la liste des Fragments que fera défiler le PagerAdapter
List<Fragment>fragments = new Vector<Fragment>();
// Ajout des Fragments dans la liste
fragments.add(Fragment.instantiate(this,CalendrierMens.class.getName()));
//fragments.add(Fragment.instantiate(this,PageMilieuFragment.class.getName()));
//fragments.add(Fragment.instantiate(this,PageDroiteFragment.class.getName()));
// Création de l'adapter qui s'occupera de l'affichage de la liste des Fragments
this.monPagerAdapter = new MonPagerAdapter(super.getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
// Affectation de l'adapter au ViewPager
pager.setAdapter(this.monPagerAdapter);