我正在尝试在我的代码中使用LoaderManager
,但是我遇到了一个不兼容的类型错误:
@Override
public Loader<List<String>> onCreateLoader(int id, Bundle args) {
return new FileLoader(MainActivity.this);
}
这句话return new FileLoader(MainActivity.this)
不应该返回一个Loader吗?这是 LoaderManager :
public class FileLoader extends AsyncTaskLoader<List<String>>{
public FileLoader(Context context){
super(context);
}
@Override
public List<String> loadInBackground() {
.........
........
return listFiles;
}
}
答案 0 :(得分:1)
我遇到了同样的问题(需要不兼容的类型),但是看到您的帖子后,它可以帮助我学习更多。在我的代码中,它是导入的:
“导入androidx.loader.content.AsyncTaskLoader;”
,所以我将其更改为:
“导入android.content.AsyncTaskLoader;”
然后我的问题解决了。 因为“ AsyncTaskLoader”:此类在API级别28中已弃用,参见下面的参考。 https://developer.android.com/reference/android/content/AsyncTaskLoader
根据此建议,“您还应该考虑将现有项目迁移到AndroidX”,该页面如下: https://developer.android.com/jetpack/androidx/migrate/class-mappings
答案 1 :(得分:0)
最后我成功地解决了这个问题...那是在AsyncTaskLoader文件中导入支持库,而在Main文件中使用它...所以我刚刚删除了
import android.content.AsyncTaskLoader;
并导入以下支持库
import android.support.v4.content.AsyncTaskLoader;