为什么我在制作FragmentPageAdapter时出错



我正在学习一个教程,以便可以在视图中的选项卡中滑动。它需要我制作FragmentPageAdapter的子类——在我的情况下:

public class PagerAdapter extends FragmentPagerAdapter {
...
}

我已经实现了所有的抽象方法,但由于某种原因,我得到了以下错误:在"android.support.v4.app.FragagePageAdapter"中没有可用的默认构造函数

有人知道我该怎么解决吗?非常感谢您的帮助。

如果在类PagerAdapter中没有指定任何构造函数,则使用不带args的默认构造函数,它会查找不带arg的父类构造函数,这相当于.

public PagerAdapter(){
       super(); // Looks for constructor public FragmentPagerAdapter (){}
  }

在父类FragmentPagerAdapter中,存在以下构造函数定义的

public FragmentPagerAdapter (FragmentManager fm)

现在java中的规则是,一旦定义了任何带参数的构造函数,默认情况下,除非显式定义,否则无参数构造函数是不可用的。所以这里public FragmentPagerAdapter (){}不存在。这就是为什么super()调用找不到无参数默认构造函数而出现此错误的原因。

为了处理这个问题,在类PagerAdapter中,您需要有一个构造函数,它将调用正确的超类构造函数

public PagerAdapter(FragmentManager fm){
       super(fm);
  }

您必须调用超级构造函数:http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html#FragmentPagerAdapter(android.support.v4.app.FFragmentManager(

public class PagerAdapter extends FragmentPagerAdapter {
  // ...
  public PagerAdapter(FragmentManager fm){
       super(fm);
  }
}

在'android.support.v4.app.FFragmentPageAdapter'中没有可用的默认构造函数

默认构造函数是不带参数的构造函数。由于FragmentPageAdapter有一个非默认构造函数,您需要实现/编码一个与FragmentPageAdapter匹配的构造函数。

哪个是

public FragmentPagerAdapter (FragmentManager fm){
}

在你的情况下,它会像这里的其他答案

public PagerAdapter(FragmentManager fm){
    super(fm);
}

相关内容

  • 没有找到相关文章

最新更新