我正在尝试向片段添加“滑动刷新布局”。我正在使用AsyncTaskLoader加载数据。在设置“刷新布局”的OnRefreshListener时,我想重新启动加载器以加载新数据(否则我应该做其他事情),但是我无法处理loaderCallBacks参数。如果我使用“ this”,它将给出错误。它说“找到OnRefreshListener,必需的LoaderManager.LoaderCallback”对象。 (我有OnCreateLoader,OnLoadFinished和OnLoaderReset。)
这是我的代码:
BaseActivity :AppCompatActivity
我的第二个问题是“ getloaderManager()”一词是删除线,告诉我它已被弃用。我该怎么办?
答案 0 :(得分:0)
第一个问题:
设置侦听器时,您创建了OnRefreshListener
的新匿名内部类实例,这意味着this
是它的实例,而不是实现LoaderCallbacks
的Fragment。 / p>
改为使用FragmentTopNews.this
:
getLoaderManager().restartLoader(NEWS_LOADER_ID, null, FragmentTopNews.this);
第二个问题:
android.app.Fragment
及其相关类已在API 28中弃用。您应该改用android.support.v4.app
版本。换句话说,更改您的进口。您还必须开始使用AppCompatActivity和getSupportFragmentManager()
。
编辑:
似乎支持文档已过时。我实际上必须去AOSP找到这个,但是Fragment#getLoaderManager()
确实已被弃用。使用LoaderManager.getInstance(Fragment)
。