2

我今天早些时候发布了关于在我的 PagerAdapter 中更新幻灯片的信息,并被定向到此处:Android ViewPager:以编程方式移动任何页面以结束?

我试图重新设计我的 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<> 来完全匹配该示例,并得到了同样的错误。

4

1 回答 1

3

好吧,我不确定为什么原始代码实际上没有得到您的错误,但是您可以尝试以这种方式更改代码以修复错误并按照错误提示调用超级构造函数:

用这个替换你的构造函数,它应该可以工作:

public ScreenSlidePagerAdapter(FragmentManager fm, ContestEntriesModel Entries) {
    super(fm);
    this.entries = Entries;
}
于 2013-06-18T00:31:48.383 回答