2017-04-09 4 views
-2

私はScreenSliderを処理するPagerAdapterクラスを持っています。どのような私が欲しいの代わりに、複数の断片にPagerAdapterClassが呼び出されるフラグメントオブジェクトのリストをPagerAdapterに追加するには

クラスの追加のインスタンス(フラグメントクラスのオブジェクト)を追加することです:

List<Fragment> fragments = new Vector<Fragment>();   

    fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));// Here i want to add instance of class 
    fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));  

    this.mPagerAdapter = new PagerAdapter2(super.getSupportFragmentManager(), fragments); //Constructor 

    ViewPager pager = (ViewPager)findViewById(R.id.view_pager); 

    pager.setAdapter(this.mPagerAdapter); 

    pager.setCurrentItem(Proba.broj); 

をそしてここPagerAdapterクラスです:

public class PagerAdapter2 extends FragmentPagerAdapter 

{ 

private List<Fragment> fragments; 
/** 
* @param fm 
* @param fragments 
*/ 
public PagerAdapter2(FragmentManager fm, List<Fragment> fragments) { 
    super(fm); 
    this.fragments = fragments; 
} 
/* (non-Javadoc) 
* @see android.support.v4.app.FragmentPagerAdapter#getItem(int) 
*/ 
@Override 
public Fragment getItem(int position) 
{ 
    return this.fragments.get(position); 
} 

/* (non-Javadoc) 
* @see android.support.v4.view.PagerAdapter#getCount() 
*/ 
@Override 
public int getCount() { 
    return this.fragments.size(); 
} 

}

答えて

0

インスタンスを追加します。

fragments.add(new Fragment1()) ; 

それとも、引数

Fragment f = new Fragment1(); 
Bundle args1 = new Bundle() ; 
// put into args1 
f.setArguments(args1); 
fragments.add(f) ; 

関連必要がある場合:When Fragment.instantiate is preferable over MyFragment.newInstance or new MyFragment()

の代わりに、複数の断片

を追加することをあなたが複数のページをしたい場合は、複数のフラグメントを追加する必要があります

+0

しかし、別のインスタンスのFragment1を別のargumetsで追加する方法はありますか? – smiljka

+0

正しい行をもう一度コピーしてコピーします。あなたは質問で引数を使用したことはありませんので、私はあなたが何を意味するのかわかりません –

+0

このインスタンスは異なる引数を持ち、同じメンバークラスですが異なる値を持ちます。 – smiljka

関連する問題