Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Beginner - Java konstatni ulozeni promenne

Aktivity
Avatar
Petr Vít
Člen
Avatar
Petr Vít:3.12.2016 9:15

Zdravim, zacinam v Java a aby uceni lepe slo programuju svuj vlastni program a cerpam z tutorialu.
Stale pisu v konzolove Java ovsem ted jsem se zasekl.

Potrebuju do programu vlozit promenou kterou by mohl uzivatel prepsat a ona by zustala v programu ulozena.
Tudiz pri dalsim spusteni by nebyla vychozi ale program by ji nacet z minule operace s programem.

Diky moc

 
Odpovědět
3.12.2016 9:15
Avatar
Libor Šimo (libcosenior):3.12.2016 9:36

To myslim nepojde, ale riesenim je, ulozit ju do externho suboru a pri novom otvoreni ju nacitat.
Samozrejme to musi byt tak naprogramovane.

Nahoru Odpovědět
3.12.2016 9:36
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Petr Vít
Atrament:3.12.2016 10:20

Buď externí soubor jak navrhuje Libor Šimo (libcosenior) a nebo můžeš použít <a href="http://­docs.oracle.com/ja­vase/8/docs/techno­tes/guides/pre­ferences/over­view.html">Pre­ferences 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áš.

 
Nahoru Odpovědět
3.12.2016 10:20
Avatar
Petr Vít
Člen
Avatar
Petr Vít:3.12.2016 11:11

Pak trochu nechapu smysl Javy, vsak v Jave se treba programuju Android aplikace pokud vim. A ty si pamatuji informace i po vypnuti a opetovnem spusteni.

 
Nahoru Odpovědět
3.12.2016 11:11
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Petr Vít
Atrament:3.12.2016 14:18

Vůbec jsem nepochopil co se snažíš říct.

 
Nahoru Odpovědět
3.12.2016 14:18
Avatar
Odpovídá na Petr Vít
Libor Šimo (libcosenior):3.12.2016 14:22

To nie je o zmysle Javy, ale o tvojich zaciatocnickych znalostiach.

Nahoru Odpovědět
3.12.2016 14:22
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Adam Ježek
Tvůrce
Avatar
Odpovídá na Petr Vít
Adam Ježek:3.12.2016 14:33

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.

Nahoru Odpovědět
3.12.2016 14:33
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Adam Ježek
Atrament:3.12.2016 15:10

Android má svoje vlastní SharedPreferences, které se používají hodně podobně jako 'normální' Preferences.

 
Nahoru Odpovědět
3.12.2016 15:10
Avatar
Petr Vít
Člen
Avatar
Petr Vít:4.12.2016 7:48

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

 
Nahoru Odpovědět
4.12.2016 7:48
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Petr Vít
Atrament:4.12.2016 9:46

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_U­SER/SOFTWARE/Ja­vaSoft/Prefs/com/a­trament. 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.

 
Nahoru Odpovědět
4.12.2016 9:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.