一个片段类的多个实例
问题描述:
我想创建一个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);
}
}
答
你可以。您是否收到错误或数据没有更新?
编辑:
这也取决于你如何编码的片段,接受作为参数,并计算页?
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();
}
}
}
什么是您使用的是创建许多'Fragment's的代码? – Eric 2012-07-26 17:54:46
你可以。我见过很多查看传呼机的例子。事实上,我认为谷歌自己的Fragment例子就是这样做的。只是实例化一个新对象并添加它。 – DeeV 2012-07-26 17:57:26
我编辑我的问题,请看代码,并感谢您的快速解答... – Adi52i 2012-07-26 18:11:08