我今天早些时候发布了有关更新 PagerAdapter 中幻灯片的信息,并被定向到此处:Android ViewPager: Move any page to end programatically?
我尝试重新设计我的 FragmentPagerAdapter 扩展类以对该页面上的类进行建模,但我的构造函数遇到了问题。请参阅下面代码中的注释,了解我遇到的错误。我不确定为什么它可以在上面的页面上工作,但不适合我。
private class ScreenSlidePagerAdapter extends FragmentPagerAdapter {
ContestEntriesModel entries;
//this yields an error in eclipse that says "Implicit super constructor
// FragmentPagerAdapter() is undefined. Must explicitly invoke
//another constructor
public ScreenSlidePagerAdapter(ContestEntriesModel Entries) {
this.entries = Entries;
}
@Override
public long getItemId(int position) {
return entries.entries[position].ContestEntryId;
}
@Override
public int getItemPosition(Object object) {
android.support.v4.app.Fragment f = (android.support.v4.app.Fragment)object;
for(int i = 0; i < getCount(); i++){
android.support.v4.app.Fragment fragment = getItem(i);
if(fragment.equals(f)){
return i;
}
}
return POSITION_NONE;
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
long entryId = getItemId(position);
//Log.d("EntryIds",Integer.toString(entryId));
if(mItems.get(entryId) != null) {
return mItems.get(entryId);
}
Fragment f = ScreenSlidePageFragment.create(position);
mItems.put(entryId, f);
return f;
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
我对 android/java 还很陌生,所以我不完全确定这意味着什么。我提出这个新问题是因为我不想继续支持我之前的问题。
TIA
编辑:我还尝试使用 ArrayList<> 来完全匹配该示例,但得到了相同的错误。
最佳答案
好吧,我不确定为什么原始代码实际上没有得到您的错误,但您可以尝试以这种方式更改代码以修复错误并按照错误提示调用 super 构造函数:
用这个替换你的构造函数,它应该可以工作:
public ScreenSlidePagerAdapter(FragmentManager fm, ContestEntriesModel Entries) {
super(fm);
this.entries = Entries;
}
关于android - 扩展 FragmentPagerAdapter 存在缺少 super 构造函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17158817/