|
|
# Práca so zoznamami, práca s databázou
|
|
|
|
|
|
- https://book.droidboy.cz/4-seznamy.html
|
|
|
- https://github.com/orhanobut/hawk
|
|
|
|
|
|
## Úloha 1
|
|
|
|
|
|
V `activity_main_menu` pridajte nové TextView do stredu nad Štart button.
|
|
|
|
... | ... | @@ -10,7 +10,14 @@ V `MainMenuActivity` mu nastavte hodnotu na 0. |
|
|
|
|
|
## Hawk
|
|
|
|
|
|
Import knižnice sa definuje v súbore `build.gradle`:
|
|
|
Dnes budeme pracovať s knižnicou [Hawk](https://github.com/orhanobut/hawk).
|
|
|
|
|
|
Hawk je databáza, ktorá **trvale** ukladá dáta v telefóne.
|
|
|
Bežné hodnoty, ktoré sú nastavené v premenných, sa po zavretí aplikácií stratia, čo je problematické, ak si chceme pamätať napr. najvyššie dosiahnuté skóre.
|
|
|
|
|
|
Knižnica je funkcionalita mimo základné funkcie. Ak chceme existujúce triedy, funkcie používať, potrebujeme knižnicu immportovať.
|
|
|
|
|
|
Import knižnice sa definuje v súbore `build.gradle` (**POZOR:** Sú tam dva súbory s rovnakým menom!):
|
|
|
|
|
|
```
|
|
|
implementation "com.orhanobut:hawk:2.0.1"
|
... | ... | @@ -45,7 +52,7 @@ Hawk.delete("key"); |
|
|
|
|
|
Ak by sme chceli všetko zmazať, použijeme `Hawk.deleteAll();`
|
|
|
|
|
|
## Úloha 1
|
|
|
## Úloha 2
|
|
|
|
|
|
Do hry pridajte nad tlačítko _Štart_ počítadlo maximálneho počet dosiahnutých bodov.
|
|
|
Hodnota sa zachová aj pri zavretí aplikácie. (Aplikáciu treba zavrieť a odstrániť z nedávnych aplikácií.)
|
... | ... | @@ -55,4 +62,20 @@ Hodnota sa zachová aj pri zavretí aplikácie. (Aplikáciu treba zavrieť a ods |
|
|
Keď úlohu spravíte, zistíte, že po skončení hry sa číslo neupdatuje.
|
|
|
Je to spôsobené tým, že metóda `onCreate` sa zavolá len pri vytvorení Aktivity, no pri návrate z inej aktivity sa táto metóda nezavolá. Kód vykonajte vo vhodnejšej metóde [`onStart`](https://developer.android.com/guide/components/activities/activity-lifecycle#onstart):
|
|
|
|
|
|
![activity-lifecycle](uploads/805834ac94a62972637862a401edf0a5/activity-lifecycle.png) |
|
|
\ No newline at end of file |
|
|
![activity-lifecycle](uploads/805834ac94a62972637862a401edf0a5/activity-lifecycle.png)
|
|
|
|
|
|
## BONUS
|
|
|
|
|
|
Pridajte tlačítko na vyčistenie skóre.
|
|
|
|
|
|
## Úloha 3
|
|
|
|
|
|
Ukladajte si aj dátum, kedy bolo najvyššie skóre dosiahnuté.
|
|
|
Keď zistíme aktuálny čas, musíme ho správne naformátovať:
|
|
|
|
|
|
```kotlin
|
|
|
val currentDateTime = Calendar.getInstance().time
|
|
|
|
|
|
val formatter = SimpleDateFormat("dd. MM. yyyy HH:mm", Locale("cs"))
|
|
|
val formattedDateTime = formatter.format(date)
|
|
|
``` |
|
|
\ No newline at end of file |