Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Radzhab
12 / 12 / 0
Регистрация: 18.06.2011
Сообщений: 406
#1

Retrofit async не успевает загрузить данные - Программирование Android

29.06.2015, 10:56. Просмотров 300. Ответов 1
Метки нет (Все метки)

Использую ассинхронные запросы. Ну в принципе оно и понятно почему данные не успевают отображаться в recyclerview). У меня есть класс ChesselistFragment. Я в конструкторе вызываю метод populateData, и он начинает собирать данные. Я бы хотел и recyclerview инициализировать в этом методе, но эт ж фрагмент. Как я смогу получить ViewGroup?

В общем.

1) Или мне нужно сделать синхронный запрос, обернув retrofit в AsyncTask (что не есть комильфо имхо. С таким же успехом я мог все сделать и просто http запросами)

2) Или мне нужно как то получить ViewGroup фрагмента, до его onCreateView, что звучит абсурдно) Надеюсь гуру помогут советом

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
private void populateData(int currentPage) {
 
        restClient = new RestClient();
        restClient.getNewsService().getNews(currentCategory,currentPage, new Callback<List<ApiResponse>>() {
        @Override
        public void success(List<ApiResponse> apiResponse, Response response) {
 
            for (int i=0; i<apiResponse.size(); i++){
                Log.e("Axixa", String.valueOf(apiResponse.get(i).getId()));
                News news = new News(
                        apiResponse.get(i).getId(),
                        apiResponse.get(i).getTitle(),
                        apiResponse.get(i).getPreviewImage(),
                        apiResponse.get(i).getDate());
                hs.add(news);
 
            }
            if (lNews.size()>0) page++;
            lNews.clear();
            lNews.addAll(hs);
 
            init();
        }
 
        @Override
        public void failure(RetrofitError error) {
 
        }
    });
}
 
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
 
rootView = inflater.inflate(R.layout.fragment_cheese_list, container, false);
 
mLinearLayoutManager = new LinearLayoutManager(getActivity());
mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recycleralda);
 
mRecyclerView.addItemDecoration(new SimpleDividerItemDecoration( // Добавление разделителя
        getActivity()
));
 
mRecyclerView.setLayoutManager(mLinearLayoutManager);
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
if (page==0){
    mRecyclerviewAdapter = new RecyclerViewAdapter(lNews, getActivity());
    mRecyclerView.setAdapter(mRecyclerviewAdapter);
 
}
 
 
      return rootView;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2015, 10:56     Retrofit async не успевает загрузить данные
Посмотрите здесь:

Загрузить данные один раз с MySQL таблицы в память приложения, и в дальнейшем использовать ее - Программирование Android
Всем добрый вечер, Есть ли возможность загрузить данные один раз с MYSQL таблицы в память приложения, и в дальнейшем использовать ее....

Библиотека Retrofit - Программирование Android
Мне нужно освоить библиотеку Retrofit.Я нашол урок https://www.youtube.com/watch?v=c5HX_GoyaDs. Я постарался повторить и у меня возникли...

OPTIONS запросы в Retrofit - Программирование Android
Всем привет, никто не сталкивался с данным вопросом? Я нашел в репозитории ретрофита какое-то упоминание но я не знаю как его примернить...

Retrofit, JSON, @POST, @GET - Программирование Android
Уважаемые программисты, прошу вашей помощи! Хожу на курсы по разработке мобильных приложений, месяц, как хожу, мало еще что знаю, но...

Retrofit 2 post запрос - Программирование Android
Делал реализацию клиент-сервер, в андроид при помощи retrofit. и встретился с проблемой как реализовать POST запрос. ( GET запрос у меня...

Ошибка JSON в Retrofit - Программирование Android
Всем привет! Недавно начал изучение Retrofit как известной библиотеки для REST-запросов. Там всё сильно автоматизировано, например,...

Прокладывание маршрута и Retrofit - Программирование Android
Добрый день. Есть проблема с реализацией маршрутов в приложении. Суть проста: есть 2 точки, необходимо их соединить маршрутом. На основе...

Разницы между OkHTTP AND Retrofit - Программирование Android
Добрый вечер, ребята в чем разница между Retrofit и okHTTP это код Retrofit Retrofit retrofit = new Retrofit.Builder() ...

Работа с SOAP с помощью retrofit - Программирование Android
работа с SOAP с помощью retrofit или похожей библиотекой.. Ребята подскажите как работать с этим чудом SOAP? Как намного проще?

Retrofit 2. Возвращаемое значение == null - Программирование Android
Делаю небольшое приложение для VK. Решил использовать Retrofit 2. Набросал простенький запрос, но в ответ приходит код 200 и null. ...

Относительные пути в аннотациях Retrofit - Программирование Android
@GET(&quot;/feeds/flowers.json&quot;) Так аннотируется Get запрос Retrofit, где /feeds/flowers.json путь к Json файлу уже на сервере. А почему в...

Извлечение модели ошибки retrofit + rx - Программирование Android
Работаю с Retrofit и RX. Через Gradle подключаю так: compile 'com.squareup.retrofit2:retrofit:2.0.0' compile...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
29.06.2015, 12:17     Retrofit async не успевает загрузить данные #2
Radzhab, ничего не понятно. Сформулируйте, что сейчас происходит и что хотите получить. Если сбор данных происходит медленно, сначала загрузите фрагмент, нарисуйте progressbar, а затем начинайте грузить данные.
Yandex
Объявления
29.06.2015, 12:17     Retrofit async не успевает загрузить данные
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru