Skoro dane już wyświetlają się na ekranie trzeba zrobić coś żeby można było je odświeżyć bez potrzeby ponownego uruchomienia aplikacji. Użyję widżetu SwipeRefreshLayout.
Nie trzeba do tego na szczęście dużego nakładu pracy. Wystarczy opakować RecyclerViewLayout w SwipeRefreshLayout i zmienić id RecyclerViewLayoutu na list, żeby wszystko zadziało się automagicznie.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A następnie dodać listener onRefresh w MainActivity, który będzie nasłuchiwał, czy użytkownik przesunął palcem po ekranie. Kiedy użytkownik machnie po ekranie zostanie odpalona metoda sendQueryForData – ta sama co przy uruchomieniu aplikacji.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Metoda sendQueryForData musi dostać dodatkowe linijki, żeby schować ładujące się kółeczko kiedy request zostanie obsłużony:
swipeRefreshLayout.setRefreshing(false);
Dodatkowo musimy pamiętać o ludziach, którzy nie używają gestów do obsługi aplikacji, bo mają na przyklad D-pad. Dla nich trzeba zrobić menu kontekstowe i po kliknięciu na odpowiednią pozycję odświeżyć Pamiętając o wyświetleniu spinnera.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters