2

私は今日、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に非常に慣れているので、それが何を意味するのか完全にはわかりません。以前の質問に便乗し続けたくなかったので、この新しい質問を作成しました。

ティア

編集: ArrayList<> を使用してそのサンプルを完全に一致させようとしたところ、同じエラーが発生しました。

4

1 に答える 1

3

元のコードで実際にエラーが発生しない理由はわかりませんが、この方法でコードを変更してエラーを修正し、エラーが示唆するようにスーパー コンストラクターを呼び出すことができます。

コンストラクターをこれに置き換えると、動作するはずです。

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