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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Смена ориентации экрана перезапускает приложение http://www.cyberforum.ru/android-dev/thread1489620.html
Создаю на своем мобильном приложении. На очередном этапе заметил, что смена ориентации экрана как бы перезапускает приложение: отображаются исходные данные. После гугления выяснил, что при смене...
Программирование Android Где используют сервис в андроид? Как и где нужно использовать сервисы ? http://www.cyberforum.ru/android-dev/thread1489604.html
Является ли репликацией вид системы Программирование Android
На устройстве, в базе, хранится информация до передачи на БД сервера можно ли хоть как-то соотнести такую систему к репликации? В тему по БД уже писал, молчат(
Программирование Android Сменить ориентацию экрана
здравствуйте, возможно ли заставить android загружаться в landscape если аппарат находится в portrait? я хочу чтобы определенное activity открывалось только в landscape . пользователь открывает...
Программирование Android Не отображаются карты Google Maps http://www.cyberforum.ru/android-dev/thread1489294.html
Здравствуйте, ребята. Есть такой вопрос: был разработан информационный продукт, поддерживающий геолокацию на основе Google Maps, тестирование проводилось на реальном устройстве через отладку. Дело...
Программирование Android Не работает команда stopService() Здравствуйте. Создаю приложение с сервисом в отдельном процессе. Запускаю сервис из активити командой startService(new Intent(this, AppService.class)) Процесс запускается, все хорошо. Но при... подробнее

Показать сообщение отдельно
Radzhab
12 / 12 / 0
Регистрация: 18.06.2011
Сообщений: 408

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

29.06.2015, 10:56. Просмотров 312. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru