Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Radzhab
12 / 12 / 1
Регистрация: 18.06.2011
Сообщений: 413
1

Retrofit async не успевает загрузить данные

29.06.2015, 10:56. Просмотров 377. Ответов 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2015, 10:56
Ответы с готовыми решениями:

Retrofit не может получить данные через API
Добрый день. Такая проблем: Есть сайт с магазином с API, типа...

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

Retrofit trouble
По тз нужно написать POST запрос через retrofit, Я создал его, но приложение...

Библиотека Retrofit
Мне нужно освоить библиотеку Retrofit.Я нашол урок...

Retrofit Recyclerview
Здравствуйте, уважаемые форумчане. Помогите добавить onScroll в...

1
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,734
29.06.2015, 12:17 2
Radzhab, ничего не понятно. Сформулируйте, что сейчас происходит и что хотите получить. Если сбор данных происходит медленно, сначала загрузите фрагмент, нарисуйте progressbar, а затем начинайте грузить данные.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2015, 12:17

Ошибка JSON в Retrofit
Всем привет! Недавно начал изучение Retrofit как известной библиотеки для...

Retrofit 2 post запрос
Делал реализацию клиент-сервер, в андроид при помощи retrofit. и встретился с...

Прокладывание маршрута и Retrofit
Добрый день. Есть проблема с реализацией маршрутов в приложении. Суть проста:...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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