问题:我有一个带有FragmentStatePagerAdapter的ViewPager设置,它使用全局arraylist来获取其片段的内容。当我想更新这个全局数组时,我只需调用arraylist.add()
方法,实例化一个新的FragmentStatePagerAdapter和一个新的ViewPager。但是,由于某种原因,适配器根本不调用getItem。并不是说它的数据集是空的(它不是)或任何东西......它根本就没有被调用。我甚至设置了一个日志来测试它。这是我的代码:
// Create the adapter that will return a fragment for event
SectionsPagerAdapter adapter = new SectionsPagerAdapter(getFragmentManager());
// Set up the ViewPager with the sections adapter.
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(adapter);
/**
* A FragmentStatePagerAdapter that returns a fragment corresponding to
* an index of the global events array
*/
public class SectionsPagerAdapter extends FragmentStatePagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
/**
* Called to instantiate the fragment for the given page
*/
@Override
public Fragment getItem(int position) {
Log.v("Miles", "getItem called");
// getItem is called to instantiate the fragment for the given page.
return EventFragment.newInstance(events.get(position));
}
/**
* Total number of pages (fragments) there are
* Given by size of the global events array minus 1
*/
@Override
public int getCount() {
return events.size() - 1;
}
}
这个设置有什么问题吗?我可以验证全局arraylist中是否有数据,但是没有实例化片段来反映它。