folosi Android sharedpreferences pentru a salva setările, suvitruf

Pentru cele mai multe aplicații, pe care doriți să salvați setările care controlează comportamentul programului. Android oferă o serie de moduri alternative de a stoca aplicații de date, fiecare dintre acestea
optimizate pentru nevoile specifice.

Setări generale - mecanism simplu și ușor bazat pe perechi de „cheie - valoare“ și este destinat să păstreze datele aplicației primitive, de multe ori setările personalizate.

clasa SharedPreferences vă permite să creați în aplicația numită matrice asociative, cum ar fi „cheie - valoare“, care poate fi utilizat de către diferitele componente ale aplicației (în timpul lucrului
în cadrul aceleiași aplicații).

Setări generale acceptă tipuri de bază boolean, șir de caractere, float, lung, și întreg, ceea ce le face ideale pentru a salva rapid valorile implicite, variabile, clasa de exemplu, starea actuală a UI și setări de utilizator.

Creați și salvați setările

, Ai nevoie de a apela o metodă de a crea sau a modifica setările generale
getSharedPreferences în contextul cererii, care trece numele comun pentru setările pe care doriți să le modificați. Setările nu sunt disponibile pentru alte aplicații.

Obținerea de setările generale

Este necesar să se treacă în numele getSharedPreferences setările generale, accesul la care doriți să primiți, și de a folosi o metodă de a obține tastată. pentru a prelua valorile stocate. Transferat la cheia implicită și valoarea (caz de utilizare nu este salvat încă nici o valoare pentru această cheie).

Valori de curatare / de eliminare

Pentru valorile de curățare folosind metode SharedPreferences.Editor.remove (String-cheie) și SharedPreferences.Editor.clear ().

Fișierul de setări este stocat în /data/data/package_name/shared_prefs/imya_fayla_nastroek.xml. Puteți șterge:

cadru Preferințe

În exemplele de mai sus este, de obicei, de economisire și restaurarea parametrilor relevanți. Asta este, se creează o marcă XML-fișier și plasate acolo controalele necesare. Dar Android în acest scop, oferă propriul său cadru Preferințe, cu care puteți crea un set personalizat de preferințe și să le includă în aplicație.

Adică, nu este nevoie de a crea un aspect de fișier și de a lua / set parametri pentru a se scrie. Este necesar doar într-o serie de opțiuni de transfer de fișiere separate și Android face deja restul. Preferința - este o activitate separată în aplicație, de la activ. Activitatea se extinde de la clasa PreferenceActivity. Preferințele sunt definite într-un fișier XML separat, în care elementul rădăcină este elementul . care este un container pentru preferințele și poate conține elemente copil . element Este, de asemenea, un element container și de preferință în grupul de asociere.

PreferenceScreen

Este necesar să se creeze inițial resursele res folderul / XML / fișier XML, cum ar fi, settings.xml. Alegeți tipul de Android fișier XML de fișiere.

folosi Android sharedpreferences pentru a salva setările, suvitruf

La crearea unui fișier pentru a seta comutatorul de pe caseta de dialog Preferințe și asigurați-vă că elementul rădăcină al fișierului instalat PreferenceScreen.

folosi Android sharedpreferences pentru a salva setările, suvitruf

settings.xml

Următoarea Solicitarea setările necesare:

Am identificat două opțiuni: dimensiunea textului, limba cererii. C toate într-un context mai larg, prim domeniu. Dar, mai dificil de a selecta elementul de limbă. Avem interesat de două domenii: Android: intrări și Android: entryValues. Din titlu, cred că, clar scopul lor.

Determinarea parametrilor în string.xml și array.xml

Desigur, este necesar să se determine toate variabilele. În string.xml.

PreferenceActivity

Pentru PreferenceActivity creat automat SettingsActivity. Am fost acolo o nevoie de puțin pentru a schimba metoda onCreate.

addPreferencesFromResource () metoda citește configurația specificată a fișier XML, care stochează resursele noastre și le face disponibile pentru acest program. Ca urmare, ar trebui să vedem setările de pe ecran. În cazul în care activitatea noastră automată nu a fost înregistrată, apoi adăugați AndroidManifest.xml manifest:

Deci, scrie codul, astfel încât atunci când faceți clic pe meniu, deschis fereastra noastră la setările. Pentru aceasta vom defini o metodă de a crea meniuri și onCreateOptionsMenu și metoda, pentru a urmări clicurile pe meniul onOptionsItemSelected.

folosi Android sharedpreferences pentru a salva setările, suvitruf

Pentru a salva preferințele pentru a alege de acolo sunt 4 clase:

  • CheckBoxPreference
  • EditTextPreference
  • ListPreference
  • RingtonePreference

Mai exact, în acest exemplu utilizează EditTextPreference și ListPreference.

Aici este setările ferestrei schimbare:

folosi Android sharedpreferences pentru a salva setările, suvitruf
folosi Android sharedpreferences pentru a salva setările, suvitruf

Modificări de urmărire în setările generale

clasa OnSharedPreferenceChangeListener vă permite să apelați metoda de apel invers-la momentul adăugării, eliminarea sau modificarea setărilor publice specifice. Folosind acest procesor, componentele aplicației poate monitoriza schimbările în setările stabilite de către utilizator, și să actualizeze interfața cu utilizatorul sau modifica comportamentul programului.

Această funcție nu este relevantă pentru un PreferenceActivity modern, bazat pe un fragment

Această funcție nu este relevantă pentru un PreferenceActivity modern, bazat pe un fragment. Dat resursa umflă XML și adaugă ierarhia preferințelor în ierarhia preferințelor curente.

Un astfel de mesaj, veți vedea SDK-ul peste multe metode PreferenceActivity. în același addPreferencesFromResource. Acest lucru înseamnă că metodele învechite. De fapt, nimic fatal despre acest lucru, doar în versiunile ulterioare au fost metode mai convenabile.

Cu versiunea 3.0, au existat așa-numitele fragmente. cu care se poate lucra cu setările.

Repet, dacă aveți o versiune mai veche de a lucra cu setările utilizate, atunci acesta va funcționa în mod normal, pe toate dispozitivele. Dar dacă sunteți scris pentru o versiune de dispozitive Android 3+, este mai bine să utilizeze fragmente.