我对装载机有一些问题。 我有Fragment,他实现了LoaderManager.LoaderCallbacks。 当我执行onCreateLoader时,会发生错误不兼容的类型。 (错误的上下文) 我的代码示例使用“getActivity()”或“getContext()”。如何解决错误?感谢。
片段
<header class="pt100 pb100 parallax-window-2" data-image-src="background.jpg">
装载机
public class FitnessDataFragment extends Fragment implements LoaderManager.LoaderCallbacks<List<AllFitnessDataModel>> {
private Loader<List<AllFitnessDataModel>> loader;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
loader = getActivity().getSupportLoaderManager().initLoader(LOADER_ID, getArguments(), this);
}
@Override
public Loader<List<AllFitnessDataModel>> onCreateLoader(int id, Bundle args) {
return new AsyncTracksLoader(getActivity(),args);
}
导入片段
public class AsyncTracksLoader extends AsyncTaskLoader<List<AllFitnessDataModel>> {
private List<AllFitnessDataModel> dataModelList = new ArrayList<>();
private int typeReminder;
public AsyncTracksLoader(Context context, Bundle args) {
super(context);
if (args != null) {
typeReminder = args.getInt(ARG_SECTION_NUMBER);
}
}
@Override
protected void onStartLoading() {
super.onStartLoading();
if(dataModelList!=null){
deliverResult(dataModelList);
}else {
forceLoad();
}
}
@Override
public List<AllFitnessDataModel> loadInBackground() {
//do something
return dataModelList;
}
@Override
public void deliverResult(List<AllFitnessDataModel> data) {
dataModelList = data;
super.deliverResult(data);
}
}
答案 0 :(得分:2)
片段有自己的加载器管理器 - 尝试拨打getLoaderManager()
而不是getActivity().getSupportLoaderManager()
。
另外,请确保您在使用android.app
或android.support.v4.app
LoaderManager
,LoaderManager.LoaderCallbacks
等方面保持一致。
答案 1 :(得分:0)
还有一件事要确保当你编写“工具......”并弹出建议时,请确保根据实施装载程序的方式选择正确的版本。它有两个版本。一个是支持一个,一个是正常支持。