загрузка разных данных с помощью Loader

295
25 июня 2017, 14:22

Есть абстрактный класс фрагмента который будут наследовать другие фрагменты.Вести себя они будут все одинаково, кроме одного - они будут загружать разные данные.

     public abstract class MovieFragment extends Fragment
                                        implements LoaderManager.LoaderCallbacks<List<Movie>> {
protected abstract List<Movie> getMovies(int currentPage);
//реализация самого фрагмента
private static class MovieLoader extends AsyncTaskLoader<List<Movie>> {
        public MovieLoader(Context context) {
            super(context);
        }
        @Override
        protected void onStartLoading() {
            forceLoad();
        }
        @Override
        protected void onStopLoading(){
            cancelLoad();
        }
        @Override
        public List<Movie> loadInBackground() {
            return getMovies(3);
        }
      }
    }

Пример класса который наследует MovieFragment:

public class PopularMovieFragment extends MovieFragment {
public static Fragment getInstance(){
    return new PopularMovieFragment();
}
@Override
protected List<Movie> getMovies(int currentPage) {
    return new MovieFetch().getPopularMovies();
  }
}

пробовал так, но так как MovieLoader должен быть статичным то и использовать getMovies(int currentPage) становится не возможным. Посоветуйте как реализовать?

READ ALSO
Создание файлов в Андроид

Создание файлов в Андроид

При записи файла перезаписывает старый файл, как сделать чтобы создавался новый файл, а не перезаписывался старый? Код целиком

280
Как определить что звонок завершился? Android

Как определить что звонок завершился? Android

Нужно определить что вызов завершился, те

187
OneToMany relationship. Как писать запросы?

OneToMany relationship. Как писать запросы?

ЗдравствуйтеСоздал БД, а запросы писать пока не умею

217