[英]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.