Uwagi
- API >=24 nie wyświetla się Android Device Monitor
- API >=23 jest problem z uprawnieniami do zapisu plików na external storage
Android - Zapisywanie danych (1)
- Materiały
- Projekt numer 7: Saving Data: Key-Value Sets
- Wykorzystując SharedPreferences napisz aplikację zapisującą pewne dane jako prywatne. Nie zapisujemy danych jako współdzielone: jest to możliwe, ale zdecydowanie niezalecane.
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Umieć opisać różnce pomiędzy External Storage a Internal Storage.
Sposób testowania i oczekiwane efekty
Po uruchomieniu widoczny jest ekran z przyciskami

W tym momencie aplikacja nie ma zapamiętanych żadnych elementów typu klucz-wartość w
SharedPreferences. Naciśnięcie na przycisk
Add Data powinno spowodować
- dodanie informacji o kluczu counter i wartości 1,
- dodanie informacji o kluczu 1 i wartości będącej napisem reprezentującym timestamp naciśnięcia przycisku,
- odświeżenie listy znajdującej się poniżej przycisków.
Odświeżona lista

Ponowne naciśnięcie na przycisk
Add Data powinno spowodować
- zaktualizowanie informacji o kluczu counter na wartość 2,
- dodanie informacji o kluczu 2 i wartości będącej napisem reprezentującym timestamp naciśnięcia przycisku,
- odświeżenie listy znajdującej się poniżej przycisków.
Odświeżona lista

Korzystając z ADM (Android Device Monitor) można ,,podejrzeć'' plik z zapisanymi wartościami typu klucz-wartość.

Po jego uruchomieniu w lewej części okna odnajdujemy naszą aplikację

a następnie w prawej części odnajdujemy właściwy katalog (
/data/data/[nazwaAplikacji]/shared_prefs/[nazwaPlikuSharedPreferencesJakiUtworzylismy].xml)

W celu jego ,,podejrzenia'' możemy go pobrać, wybierając
Pull a file from the device
W naszym przypadku plik ten wygląda w następujący sposób
(
pobierz plik)
Naciśnięcie na przycisk
Delete All Data powinno spowodować usunięcie wszystkich elementów z
SharedPreferences.
Dodatkowe zasoby
- W ramach projektu utworzono strukturę katalogowo plikową pokazaną poniżej

zawierającą następujące pliki
- strings.xml
- activity_main.xml
- MainActivity.java