Diskuze: Beginner - Java konstatni ulozeni promenne
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 10 zpráv z 10.
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
To myslim nepojde, ale riesenim je, ulozit ju do externho suboru a pri novom
otvoreni ju nacitat.
Samozrejme to musi byt tak naprogramovane.
Buď externí soubor jak navrhuje Libor Šimo (libcosenior) a nebo můžeš použít <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/preferences/overview.html">Preferences API</a>
Preferences mají tu výhodu, že se nestaráš o to jakým způsobem jsou ta data uložena, na Windows budou v registrech, na Linuxu v konfiguračních souborech. Tobě jako programátorovi je to ale fuk, prostě si vyžádáš instanci Preferences a pomocí různých metod put a get, ukládáš a načítáš.
To nie je o zmysle Javy, ale o tvojich zaciatocnickych znalostiach.
A tam to funguje uplne stejne. Nevim, jestli se na Androidu pouzivaji zrovna
preferences, ale aplikace si data take ulozi nekam bokem.
Otevri si na telefonu nejakou aplikaci, kde neni dulezite, aby si to
pamatovala(takze ne hru, kde mas nejaky postup atd.) a neco v ni udelej. Pak v
nastaveni najdi aplikaci a dej smazat data aplikace. Az ji znova otevres, tak si
nebude pamatovat vubec nic a vse bude opet vychozi. Je to tim, ze aplikace ma to
"pamatovani" ulozene nekde bokem a ted jsi ji to smazal. Stejne, jako kdyby si
na windows pouzival preferences a smazal registry, nebo si to ukladal do
textoveho souboru a smazal ho.
Android má svoje vlastní SharedPreferences, které se používají hodně podobně jako 'normální' Preferences.
Presne jak mi odpovedel Adam Jezek. Na to jsem se ptal. ... Ano jsem zacatecnik, ale otazku jsem se snazil definovat jasne. Kdyz napisu kratky kus kodu (program) v Jave, jestli je to mozno nekam ulozit (nekam bokem) jakekoliv informace ktere uzivatel zada. A pri dalsim spusteni je zase nacist ( informace ktere dam bokem)
Asi tusim ze odpovedi budou preference
Rozhodně bych ti doporučil ty Preferences, jejich použití je snadné. Jednoduchý příklad, řekněme že si někde v kódu od uživatele načteš nějakou hodnotu typu int do proměnné value, kterou budeš chtít takto uchovat. Tak si nejprve vytvoříš instancí Preferences
Preferences prefs = Preferences.userRoot().node("/com/atrament/");
to "/com/atrament" si změň na něco svého, označuje to akorát kam se to bude ukládat ty hodnoty. Takhle jak to mám se to bude ukládat ve Windows do registrů do HKEY_CURRENT_USER/SOFTWARE/JavaSoft/Prefs/com/atrament. Můžeš si to pomocí regedit.exe ověřit. Více o tom jak ovlivnit kam se budou Preferences ukládat se dočteš v dokumentaci.
Poté co máš instanci Preferences a hodnotu value, kterou jsi načetl od uživatele ti k jejímu 'trvalému' uložení stačí příkaz
prefs.putInt("hodnota", value);
kde to "hodnota" je klíč, který si sám zvolíš, podle toho co to má představovat.
Když budeš chtít naopak tuto hodnotu načíst tak stačí:
value = prefs.getInt("hodnota", 12);
a do value se ti načte hodnota, to 12 je defaultní hodnota, která se použije v případě, že jsi do prefs ještě žádnou svoji hodnotu neuložil.
A to je vše.
Zobrazeno 10 zpráv z 10.