我的ActionBarActivity
里面有一个ViewPager
。我希望在四个(第一,第二,第三,第四)页面中看到四个(第一,第二,第三,第四)片段。
问题:
在onCreate()
的{{1}}中,我有:
ActionBarActvity
这就是mViewPager = (ViewPager) findViewById(R.id.pager);
mPagerAdapter = new MyPagerAdapter(getSupportFragmentManager(), mGoodArrayListOfWords);
mViewPager.setAdapter(mPagerAdapter);
的样子:
MyPagerAdapter
我使用静态工厂方法实例化public class MyPagerAdapter extends FragmentPagerAdapter {
private ArrayList<String> mWords;
public MyPagerAdapter(FragmentManager fm, ArrayList<String> words) {
super(fm);
mWords = words;
}
@Override
public Fragment getItem(int position) {
String specificWord = mWords.get(position);
return MyFragment.newInstance(specificWord);
}
@Override
public int getCount() {
return mWords.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mWords.get(position);
}
}
,并将no-arg构造函数设为私有:
MyFragment
此外,在 public static MyFragment newInstance(String word) {
MyFragment fragment = new MyFragment();
Bundle args = new Bundle();
args.putString("WORD", word);
fragment.setArguments(args);
return fragment;
}
private MyFragment() {
super();
}
中,我获得了片段列表视图的句柄,使用onViewOnCreated()
到LoaderManager
加载器。我在init()
的{{1}}中更新了列表视图的适配器。
我认为问题是由于onLoadFinished()
在创建片段视图后完成了他们的工作。当我期待两个页面和两个片段时记录:
LoaderManager.LoaderCallbacks<Cursor>
答案 0 :(得分:0)
在您使用FragmentStatePagerAdapter
方法时扩展getItem()
。如果您想保留FragmentPagerAdapter
覆盖instantiateItem()
。