Android - Content Provider
- Materiały
- Projekt numer 12: Napisać dwie aplikacje (choć można to zrobić w jednej i takie rozwiązanie przedstawia moja wersja)
- Aplikacja 1 udostępnia pewne dane za pomocą content providera. Pochodzenie danych może być praktycznie dowolne, ale nie mogą to być dane z bazy SQLite. Tak więc mogą to być dane z plku tekstowego, pliku XML, pliku JSON, pmięci (np. tablica, lista czy wektor). W przypadku mojej aplikacji jest to właśnie wektor (Vector) w którym przechowuje pojedyncze linie tekstu.
- Aplikacja 2 operuje na danych udostępnianych przez Aplikacja 1 (dodaje, usuwa, modyfikuje.).
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Umieć wyjaśnić czym jest i do czego służy content provider.
Sposób testowania i oczekiwane efekty
- Po uruchomieniu aplikacji powinny być widoczne dwa pola pozwalające wprowadzić napis oraz jego ID
- Wprowadzamy pierwszy napis: line 0
- Zapamiętujemy go naciskając Add (insert) string

Potwierdzeniem dodania jest wyświetlenie URI zasobu z pomocą powiadomienia typ Toast oraz wyświetlenie tego zasobu na liście odświeżonej po pobraniu zawartości z content providera
- Na podobnej zasadzie jak powyżej, dodajemy jeszcze tekst line 1 oraz line 2
- Naciskamy przycisk Delete string pozostawiając pole ID puste. Powinno to doprowadzić do usunięcia wszystkich danych

- Ponownie dodajemy tekst line 0, line 1 oraz line 2
- W pole ID wpisujemy 1. Powinno to doprowadzić do usunięcia danej o ID=1 czyli tekstu line 1
- W pole ID wpisujemy 1, w pole String content wartość line 1 updated i naciskamy przycisk Update string. Powinno to doprowadzić do uaktualnienia elemetu o ID=1
- Usuwamy zawartość z pola ID, w pole String content wpisujemy wartość updated i naciskamy przycisk Update string. Powinno to doprowadzić do uaktualnienia wszystkich elementów
Dodatkowe zasoby
- W ramach projektu utworzono strukturę katalogowo plikową pokazaną poniżej

zawierającą następujące pliki
- AndroidManifest.xml
- activity_main.xml
- listlayoutforcontentprovider.xml
- MainActivity.java
- SimpleContentProvider.java