Java 迁移到Androidx后无法解析方法setAdapter
我曾尝试过类似的问题,但都没有解决我的问题。在我迁移到androidx之前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
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我已经做了那个老板