Для вашего первого вопроса:
Когда вы устанавливаете слушателя, вы создали новый анонимный внутренний экземпляр класса OnRefreshListener
, что означает, что this
является его экземпляром, а не вашим фрагментом, который реализуетLoaderCallbacks
.
Вместо этого используйте 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)
.