Java 迁移到Androidx后无法解析方法setAdapter

Java 迁移到Androidx后无法解析方法setAdapter,java,android,listview,android-arrayadapter,androidx,Java,Android,Listview,Android Arrayadapter,Androidx,我曾尝试过类似的问题,但都没有解决我的问题。在我迁移到androidx之前 slideViewPager.setAdapter(pagerAdapter) 很好,现在它抛出了一个错误 无法解析方法“setAdapter(com.fundi.passenger.home.submenu.home.HomeFragment.MyPagerAdapter)” 和slideIndicator.setViewPager(slideviewpage) setViewPager 无法应用CircleIndi

我曾尝试过类似的问题,但都没有解决我的问题。在我迁移到androidx之前

slideViewPager.setAdapter(pagerAdapter)
很好,现在它抛出了一个错误

无法解析方法“setAdapter(com.fundi.passenger.home.submenu.home.HomeFragment.MyPagerAdapter)”

slideIndicator.setViewPager(slideviewpage)

setViewPager 无法应用CircleIndicator中的(androidx.viewpager.widget.viewpager) 至(cn.trinea.android.view.autoscrollviewpager.autoscrollviewpager)

贝娄是我代码的一部分

   import androidx.fragment.app.Fragment;
   import androidx.fragment.app.FragmentManager;
   import androidx.fragment.app.FragmentPagerAdapter;
   import cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager;
   public class HomeFragment extends Fragment {
    public ArrayList<Banner> banners = new ArrayList<>();
     AutoScrollViewPager slideViewPager;

           @Override
            public void onResponse(Call<GetBannerResponseJson> call, Response<GetBannerResponseJson> response) {
                if (response.isSuccessful()) {
                    banners = response.body().data;
                    Log.e("Image", response.body().data.get(0).foto);
                    MyPagerAdapter pagerAdapter = new MyPagerAdapter(getChildFragmentManager(), banners);
                    slideViewPager.setAdapter(pagerAdapter);
                    slideIndicator.setViewPager(slideViewPager);
                    slideViewPager.setInterval(6000);
                    slideViewPager.startAutoScroll(6000);
                }
            }

    public static class MyPagerAdapter extends FragmentPagerAdapter {
        private static int NUM_ITEMS = 5;
        public ArrayList<Banner> banners = new ArrayList<>();

        public MyPagerAdapter(FragmentManager fragmentManager, ArrayList<Banner> banners) {
            super(fragmentManager);
            this.banners = banners;
        }

        @Override
        public int getCount() {
            return banners.size();
        }

        @Override
        public Fragment getItem(int position) {
            return SlideFragment.newInstance(banners.get(position).id, banners.get(position).foto);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return "Page " + position;
        }


    }

}
导入androidx.fragment.app.fragment;
导入androidx.fragment.app.FragmentManager;
导入androidx.fragment.app.FragmentPagerAdapter;
导入cn.trinea.android.view.autoscrollviewpager.autoscrollviewpager;
公共类HomeFragment扩展了片段{
公共ArrayList横幅=新建ArrayList();
AutoScrollViewPager滑动视图管理器;
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful()){
横幅=response.body().data;
Log.e(“Image”,response.body().data.get(0.foto);
MyPagerAdapter pagerAdapter=新的MyPagerAdapter(getChildFragmentManager(),横幅);
SlideView管理器设置适配器(pagerAdapter);
slideIndicator.setViewPager(slideViewPager);
slideviewpage.setInterval(6000);
slideViewPager.startAutoScroll(6000);
}
}
公共静态类MyPagerAdapter扩展了FragmentPagerAdapter{
私有静态int NUM_ITEMS=5;
公共ArrayList横幅=新建ArrayList();
公共MyPagerAdapter(碎片管理器碎片管理器,ArrayList横幅){
超级(碎片管理器);
这个。横幅=横幅;
}
@凌驾
public int getCount(){
返回横幅。大小();
}
@凌驾
公共片段getItem(int位置){
返回SlideFragment.newInstance(banners.get(position).id,banners.get(position).foto);
}
@凌驾
公共字符序列getPageTitle(int位置){
返回“页面”+位置;
}
}
}

我认为这是因为外部库与AndroidX不兼容(通过查看其GitHub历史进行假设)

我发现此库具有AndroidX兼容性:

还有一种方法是,使用Android的本机库并导入androidx.viewpager.widget.viewpager

样本:

Adapter adapter = new Adapter(getSupportFragmentManager());
adapter.addFragment(first, "First");
adapter.addFragment(second, "Second");
adapter.addFragment(third, "Third");
myViewPager.setAdapter(adapter);

// Auto Scroll
Handler handler = new Handler();

Runnable update = new Runnable() {
    public void run() {
        if (currentPage == NUM_PAGES - 1) {
            currentPage = 0;
        }
        myViewPager.setCurrentItem(currentPage++, true);
    }
};


new Timer().schedule(new TimerTask() {

    @Override
    public void run() {
        handler.post(update);
    }
}, 100, 500);

您必须更新代码以实现此功能。

我认为这是因为外部库与AndroidX不兼容(通过查看其GitHub历史进行假设)

我发现此库具有AndroidX兼容性:

还有一种方法是,使用Android的本机库并导入androidx.viewpager.widget.viewpager

样本:

Adapter adapter = new Adapter(getSupportFragmentManager());
adapter.addFragment(first, "First");
adapter.addFragment(second, "Second");
adapter.addFragment(third, "Third");
myViewPager.setAdapter(adapter);

// Auto Scroll
Handler handler = new Handler();

Runnable update = new Runnable() {
    public void run() {
        if (currentPage == NUM_PAGES - 1) {
            currentPage = 0;
        }
        myViewPager.setCurrentItem(currentPage++, true);
    }
};


new Timer().schedule(new TimerTask() {

    @Override
    public void run() {
        handler.post(update);
    }
}, 100, 500);

您必须更新您的代码以实现此目的。

请务必更新build.gradle,如下所述:这将使使用旧支持库的库改用AndroidX。@Tenfour04我已经这样做了,bossBe请务必更新build.gradle,如下所述:这将使使用旧支持库的库改用AndroidX相反。@Tenfour04我已经做了那个老板