Отменить адаптер.notifyDataSetChanged - PullRequest
0 голосов
/ 07 мая 2018

Я немного новичок в Android, и мне интересно, возможно ли, если после запуска notifyDataSetChanged () я смогу отменить его в середине.

Например, для моего случая:

Я бы получил getPrice (), затем getTransaction, если onResponse получает 1 в качестве ответа.

Я бы установил swipeRefreshListener с текущим кодом:

swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
                            @Override
                            public void onRefresh() {
                                getTransactions(view);

                                Animation fadeIn = new AlphaAnimation(0, 1);
                                fadeIn.setInterpolator(new AccelerateInterpolator()); //and this
                                fadeIn.setDuration(1000);

                                swipeRefreshLayout.setRefreshing(true);

                                layoutBalance.setAnimation(fadeIn);
                                mActivities_RecyclerView.setAnimation(fadeIn);
                                swipeRefreshLayout.setRefreshing(false);

mActivities_RecyclerViewAdapter.notifyDataSetChanged();
                            }

                        });

Я напомню getTransaction, так как мне нужно будет получать самые последние данные из API. Но поскольку мой вызов API, использующий enqueue модификации, будет работать асинхронно, мои данные сначала обновятся, прежде чем я получу фактические данные с сервера.

Итак, мой вопрос: могу ли я отменить notifyDataSetChanged() или мне нужно изменить мою реализацию?

1 Ответ

0 голосов
/ 07 мая 2018

Предполагая, что у вас есть модель данных, называемая "APIData", и теперь вы однажды присвоили ее адаптеру и представлению переработчика, после того, как произойдет Swipereferesh, и вы получите обновленные данные, которые снова будут в модели данных, называемой * 1002. *, теперь давайте предположим, что это APIData2, теперь просто используйте

APIData.equals(APIData2)

это проверит, совпадают ли предыдущие данные с новыми, если это правда, вам не нужно делать notifyDataSetChanged()

...