【发布时间】:2018-09-21 20:05:48
【问题描述】:
我正在尝试将滑动刷新布局添加到我的片段。我正在使用 AsyncTaskLoader 加载数据。在设置刷新布局的 OnRefreshListener 时,我想重新启动加载程序以加载新数据(否则我应该做不同的事情)但我无法处理 loaderCallBacks 参数。如果我使用“this”,它会出错。它说“找到 OnRefreshListener,需要 LoaderManager.LoaderCallback”对象。 (我有我的 OnCreateLoader、OnLoadFinished 和 OnLoaderReset。)
这是我的代码:
// class declaration
public class FragmentTopNews extends Fragment
implements LoaderManager.LoaderCallbacks<List<NewsItem>>, NewsAdapter.OnItemClickListener{
...
if(activeNetwork != null && activeNetwork.isConnected()){
LoaderManager loaderManager = getLoaderManager();
loaderManager.initLoader(NEWS_LOADER_ID, null,this);
}
// SwipeRefreshlayout for refreshing the data
mSwipeRefreshLayout = rootView.findViewById(R.id.srl_refresher);
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mNewsAdapter.clearData();
mNewsAdapter.notifyDataSetChanged();
mSwipeRefreshLayout.setRefreshing(true);
// Here is the problem
getLoaderManager().restartLoader(NEWS_LOADER_ID, null, this);
}
});
我的第二个问题是“getloaderManager()”这个术语是删除线告诉我它已被弃用。我能为它做些什么?
【问题讨论】:
标签: android swiperefreshlayout android-loadermanager