2012-07-26 58 views
0

我想创建一个viewpager,将包含几页,事情是,所有的页面将看起来相同(只是不同的数据),所以我创建了一个片段类,我试图添加到同一类的viewpager适配器实例...但我不能..一个片段类的多个实例

我该如何使viewpager每个页面是同一个片段类的实例? 含义:相同的设计 - 不同的数据

编辑... 我从这里通用代码... http://tamsler.blogspot.co.il/2011/10/android-viewpager-and-fragments.html

和twicked它,有点

public class MainActivity extends FragmentActivity { 

private com.example.trying1.PagerAdapter mAdapter; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    initPaging(); 
} 

private void initPaging() { 
    List<Fragment> fragments = new ArrayList<Fragment>(); 
    NoteFragment nf = new NoteFragment(); 
    Bundle bundle = new Bundle(); 
    bundle.putString("noteTitle", "A"); 
    nf.setArguments(bundle); 

    NoteFragment nf1 = new NoteFragment(); 
    Bundle bundle1 = new Bundle(); 
    bundle1.putString("noteTitle", "B"); 
    nf1.setArguments(bundle1); 

    fragments.add(nf); 
    fragments.add(nf1); 
    this.mAdapter = new com.example.trying1.PagerAdapter(
      getSupportFragmentManager(), fragments); 

    ViewPager vPager = (ViewPager) findViewById(R.id.pager); 
    vPager.setAdapter(this.mAdapter); 
} 

}

+0

什么是您使用的是创建许多'Fragment's的代码? – Eric 2012-07-26 17:54:46

+0

你可以。我见过很多查看传呼机的例子。事实上,我认为谷歌自己的Fragment例子就是这样做的。只是实例化一个新对象并添加它。 – DeeV 2012-07-26 17:57:26

+0

我编辑我的问题,请看代码,并感谢您的快速解答... – Adi52i 2012-07-26 18:11:08

回答

0

你可以。您是否收到错误或数据没有更新?

编辑:

这也取决于你如何编码的片段,接受作为参数,并计算页?

public class MainActivity extends FragmentActivity { 

private MyFragmentPagerAdapter mAdapter;  
private List<Fragment> fragments; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    initPaging(); 
} 

private void initPaging() { 
    fragments = new ArrayList<Fragment>(); 
    this.mAdapter = MyFragmentPagerAdapter(
      getSupportFragmentManager()); 
    ViewPager vPager = (ViewPager) findViewById(R.id.pager); 

    //Add 3 fragments 
    for(int i =0; i<3; i++) 
     addFragments(i); 

    //Set adapter  
    vPager.setAdapter(this.mAdapter); 
} 

private void addFragments(int i){ 
    NoteFragment nf = new NoteFragment(i); //Pass data to the fragment, so it can process it 
    //You may pass it as a bundle if you wish 
    fragments.add(nf) 
}  

//适配器代码

private static class MyFragmentPagerAdapter extends FragmentPagerAdapter { 

      public MyFragmentPagerAdapter(FragmentManager fm) { 
       super(fm); 
      } 

      @Override 
      public Fragment getItem(int index) {  
       return fragments.get(index); 
      } 

      @Override 
      public int getCount() {  
       return fragments.size(); 
      } 
     } 

} 
+0

嗯我编辑我的问题,看看代码,我试图加载到viewpager片段,所以每一个将一页 – Adi52i 2012-07-26 18:09:40

+0

你知道你想添加多少页面(片段),或者你想决定并动态添加它。我最近做了一个类似的项目,最近动态地向viewpager添加了新的片段。 – dcanh121 2012-07-26 18:11:28

+0

现在我知道我想要多少页面,也许以后我会尝试动态地执行它.. – Adi52i 2012-07-26 18:16:19

相关问题