繁体   English   中英

PagerAdapter 是抽象的; 无法实例化错误。 我该如何解决?

[英]PagerAdapter is abstract; cannot be instantiated error. How can i fix it?

我的 MainActivity.Java 文件夹就是这样。 我做了所有的导入,但它给出了错误“PagerAdapter 是抽象的;不能被实例化”

    public class MainActivity extends AppCompatActivity {

BottomBar bottomBar; //Bottomnavigationbar

//ViewPager için oluşturulan ListAdapterde ki fragmentList
List<Fragment> fragmentList = new ArrayList<>();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //viewpager tanımlanması (ana ekrandan kaydırıp kamera ve mesajlaşma kısımlarının oluşturulması için)
    ViewPager pager = (ViewPager) findViewById(R.id.viewpager);
    //fragmentlist'e gerekli fragmentlerin eklenmesi
    fragmentList.add(new ViewPager_Camera());
    fragmentList.add(new ViewPager_Home());
    fragmentList.add(new ViewPager_Message());

   PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(),fragmentList);
    pager.setAdapter(adapter);

    //Bottombar tanımlanması ve selectlistener özelliği aktif edilmesi
    bottomBar = (BottomBar) findViewById(R.id.bottom_bar);

我的 PagerAdapter 就是这样

public class PagerAdapter extends FragmentPagerAdapter {

//fragmentList tanımlanması
List<Fragment>  fragmentList = new ArrayList<>();


public PagerAdapter(@NonNull FragmentManager fm, int behavior,List<Fragment>fragList) {
    super(fm, behavior);
    this.fragmentList = fragList;
}

@NonNull
@Override
public Fragment getItem(int position) {
    //hangi fragment açıksa listeden de o fragment isteniyor
    return fragmentList.get(position);
}

@Override
public int getCount() {
    //fragmetlist boyutu kadar fragment oldugunu gösteriyor
    return fragmentList.size();
}

}

我该如何解决这个错误? 我尝试更改适配器名称但仍然有错误。 问题可能出在使用方法上吗?

问题是您正在扩展的 class FragmentPagerAdapter 是一个抽象的 class 具有您没有覆盖的抽象方法。 由于您的 class 仍然至少有一个抽象方法,因此它是抽象 class ,因此无法实例化。

在基础 class 中查找其他抽象方法,并覆盖这些方法。

PagerAdapter 也是一个抽象的框架 class (androidx.viewpager.widget.PagerAdapter)。 您的 MainActivity 可能使用了错误的 class。

将您的 PagerAdapter class 重命名为其他名称,然后查看(MyPagerAdapter?)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM