'CityFragmentPagerAdapter(androidx.fragment.app.FragmentActivity, java.util.List<androidx.fragment.app.Fragment>)' in 'com.example.weatherreport.CityFragmentPagerAdapter' cannot be applied to '(androidx.fragment.app.FragmentManager, java.util.List<androidx.fragment.app.Fragment>)'
时间: 2023-12-24 21:03:58 浏览: 162
这个错误提示是因为你在创建 `CityFragmentPagerAdapter` 对象时,传入的参数类型不正确。
根据错误提示,`CityFragmentPagerAdapter` 的构造函数需要一个 `FragmentActivity` 和一个 `List<Fragment>` 类型的参数,但是你传入的参数却是 `FragmentManager` 和 `List<Fragment>` 类型的。因此需要修改你的代码,将 `FragmentActivity` 作为第一个参数传入 `CityFragmentPagerAdapter` 构造函数中。
具体来说,你需要在创建 `CityFragmentPagerAdapter` 对象的时候,将当前的 `FragmentActivity` 作为第一个参数传入,而不是 `FragmentManager`。例如:
```java
CityFragmentPagerAdapter adapter = new CityFragmentPagerAdapter(getActivity(), fragmentList);
```
这样就可以解决这个错误了。
相关问题
package com.book.keep.adapter; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; import java.util.List; public class ChartVPAdapter extends FragmentPagerAdapter { List<Fragment>fragmentList; public ChartVPAdapter(@NonNull FragmentManager fm, List<Fragment>fragmentList) { super(fm); this.fragmentList = fragmentList; } @NonNull @Override public Fragment getItem(int position) { return fragmentList.get(position); } @Override public int getCount() { return fragmentList.size(); } }
这段代码是一个自定义的ViewPager适配器,用于在ViewPager中显示多个Fragment。它继承自FragmentPagerAdapter类,并重写了getItem()和getCount()方法。
在构造函数中,它接受一个FragmentManager和一个Fragment列表作为参数,并将其保存到成员变量fragmentList中。
getItem()方法根据指定的位置返回对应的Fragment对象。
getCount()方法返回Fragment列表的大小,即ViewPager中需要显示的Fragment数量。
这个适配器的作用是将Fragment与ViewPager绑定起来,使得ViewPager能够根据用户的滑动来切换不同的Fragment页面。
dependencies { implementation 'com.baidu.aip:java-sdk:4.16.16' implementation 'androidx.core:core-ktx:1.10.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.8.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.1' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1' implementation 'androidx.navigation:navigation-fragment-ktx:2.4.1' implementation 'androidx.navigation:navigation-ui-ktx:2.4.1' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' implementation 'com.yanzhenjie:permission:2.0.2' //room implementation "androidx.room:room-runtime:2.5.0" implementation "androidx.room:room-ktx:2.5.0" kapt 'androidx.room:room-compiler:2.5.0' implementation 'com.makeramen:roundedimageview:2.3.0' } Execution failed for task ':app:checkDebugDuplicateClasses'. > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable > Duplicate class com.google.common.util.concurrent.ListenableFuture found in modules guava-23.0 (com.google.guava:guava:23.0) and listenablefuture-1.0 (com.google.guava:listenablefuture:1.0)
这是一个 Gradle 依赖项的配置文件,其中列出了用于构建应用程序的各种库和框架。但是,它似乎出现了一个错误,提示有重复的类,即 `com.google.common.util.concurrent.ListenableFuture`。这可能是由于使用了两个不同版本的 Guava 库所引起的。你可以尝试在文件中排除一个库的依赖,或者更新 Guava 库的版本以解决这个问题。
阅读全文