Android sharedpreferences употреба, за да запаметите настройките, suvitruf

За повечето приложения, което искате да запазите настройките, които контролират поведението на програмата. Android осигурява редица алтернативни начини за съхраняване на приложения за данни, всяка от които
оптимизирана за специфични нужди.

Общи настройки - просто и лесно механизъм на базата на двойки от "ключ - стойност" и има за цел да се запазят примитивни данни за кандидатстване, често персонализирани настройки.

SharedPreferences клас ви позволява да създадете в прилагането на име асоциативни масиви, като "ключ - стойност", които могат да бъдат използвани от различните компоненти на приложението (по време на работа
в контекста на едно и също приложение).

Общи настройки подкрепят базови типа булев, низ, поплавък, дълга и число, което ги прави идеални за бърз спаси стойностите по подразбиране, променливи, клас например, текущото състояние на потребителския интерфейс и потребителски настройки.

Създаване и запазване на настройките

, Трябва да се обадите на метод за създаване или модифициране Общи настройки
getSharedPreferences в контекста на прилагането, преминаващи общо наименование за настройките, които искате да промените. Настройките не са достъпни за други приложения.

Първи общите настройки

Необходимо е да се премине в името на getSharedPreferences общите настройки, достъпът до които искате да получавате, и да използва метод от напечатан получи. за извличане на запаметените стойности. Прехвърлени ключ по подразбиране и стойността (в случая на използване още не е запазена никаква стойност за този ключ).

стойности за почистване / отстраняване

За почистване стойности се използват методи SharedPreferences.Editor.remove (String ключ) и SharedPreferences.Editor.clear ().

Файлът с настройки се съхраняват в /data/data/package_name/shared_prefs/imya_fayla_nastroek.xml. Можете да изтриете:

Предпочитания Рамковата

В примерите по-горе обикновено спасяването и възстановяването на съответните параметри. Това означава, че тя създава марка на XML-файлове и поставени там необходимият контрол. Но Android за тази цел предлага на своите собствени предпочитания рамка, с която можете да създадете персонализиран набор от предпочитания и ще ги включи в заявлението.

Това означава, че не е необходимо да се създаде оформление файл и да получите / зададени параметри, за да се пишат. Необходимо е само в отделни опции за трансфер на файлове, както и Android вече ще свърши останалото. Предпочитание - това е отделна дейност в приложението, от активен. Самата дейност се простира от PreferenceActivity клас. Предпочитания се определят в отделен XML-файл, в който главната елемент е елемент . който е контейнер за предпочитания и може да съдържа елементи на детето . елемент Тя също е елемент на контейнера и за предпочитание заедно група.

PreferenceScreen

Необходимо е да се създаде първоначално ресурси на папките RES / XML / XML-файлове, като например, settings.xml. Изберете типа на Android XML файл.

Android sharedpreferences употреба, за да запаметите настройките, suvitruf

При създаване на файл, за да зададете ключа в диалоговия прозорец Предпочитания и се уверете, че основния елемент на файла инсталиран PreferenceScreen.

Android sharedpreferences употреба, за да запаметите настройките, suvitruf

settings.xml

Следваща Asking необходимите настройки:

Ние идентифицирахме две възможности: размера на текста, езикови на заявлението. C всичко това в по-широк контекст, полето за председател. Но по-трудно, за да изберете език елемент. Имаме интерес към две области: Android: вписвания и Android: entryValues. От заглавието, мисля, изчистете предназначението им.

Определяне на параметри в string.xml и array.xml

Естествено, че е необходимо да се определи всички променливи. В string.xml.

PreferenceActivity

За PreferenceActivity създадени автоматично SettingsActivity. Ние бяхме там малко необходимо да се променя метода onCreate.

addPreferencesFromResource () метод чете определената конфигурация на XML-файл, който съхранява нашите ресурси и да ги предоставят за програмата. В резултат на това, ние трябва да видите настройките на екрана. Ако автоматичната ни дейност не е регистрирано, след което добавете манифест AndroidManifest.xml:

Така напишете кода, така че, когато кликнете върху менюто, отвори прозореца ни за настройките. За това ние определяме метод за създаване на менюта и onCreateOptionsMenu и метод за проследяване на кликванията върху onOptionsItemSelected меню.

Android sharedpreferences употреба, за да запаметите настройките, suvitruf

За да запазите предпочитанията да избирате има 4 класа:

  • CheckBoxPreference
  • EditTextPreference
  • ListPreference
  • RingtonePreference

По-конкретно, в този пример се използва EditTextPreference и ListPreference.

Ето настройките на прозореца на климата:

Android sharedpreferences употреба, за да запаметите настройките, suvitruf
Android sharedpreferences употреба, за да запаметите настройките, suvitruf

проследяване на промените в общите настройки

OnSharedPreferenceChangeListener клас дава възможност да се свържете с обаждане-метод по време на добавянето, отпадането или промяна на специфични обществени настройки. С помощта на този процесор, компонентите на приложението ви може да следи промените в настройките, определени от потребителя, както и актуализиране на потребителския интерфейс или променят поведението на програмата.

Тази функция не е от значение за една модерна база фрагмент PreferenceActivity

Тази функция не е от значение за една модерна база фрагмент PreferenceActivity. Надува даден XML ресурс и добавя йерархията предпочитание към текущата предпочитания йерархия.

Такова съобщение, ще видите SDK в продължение на много методи PreferenceActivity. в същото addPreferencesFromResource. Това означава, че методите остаряла. Всъщност, нищо фатално за това, само в по-късните версии са по-удобни методи.

С версия 3.0, имаше т.нар Фрагменти. с които можете да работите с настройките.

Повтарям, ако имате по-стара версия за работа с настройките, използвани, след което тя ще работи на всички устройства нормално. Но ако пишете за версия на Android устройства 3+, по-добре е да се използват фрагменти.