Телефонуйте » (+38) 096 227 41 41

Якщо маєте відносно невелику колекцію ключ-значення, які хотіли б зберегти, то повинні використати API SharedPreferences. Об'єкт SharedPreferences вказує на файл, що містить пари ключ-значення і надає прості методи для їх читання і запису.

Кожен файл SharedPreferences управляється фреймворком і може бути приватним або спільним.
Цей урок показує, як використовувати API SharedPreferences для зберігання та вилучення простих значень.

Примітка: API SharedPreferences призначений тільки для читання і запису пари ключ-значення, і ви не повинні його плутати з API Preference, який допомагає побудувати користувальницький інтерфейс для налаштування додатків (хоча при реалізації він використовує SharedPreferences, щоб зберегти налаштування додатка). Для отримання інформації про використання API Preference зверніться до керівництва з установки.

Отримання дескриптора SharedPreferences

Ви можете створити новий спільний файл налаштувань або отримати доступ до існуючого, викликавши один з двох методів:

·    getSharedPreferences() - використовуйте, якщо вам потрібно кілька спільних файлів налаштувань, ідентифікованих за іменем, яке вказуєте як перший параметр. Можете викликати це з будь-якого Context у своєму додатку.
·    getPreferences() - використовуйте із Activity, якщо вам потрібний тільки один спільний файл налаштувань для activity. Оскільки при цьому витягується спільний файл налаштувань за замовчуванням, що належить до activity, то не потрібно вказувати ім'я.

Наприклад, виконується наступний код всередині Fragment. Це доступ до спільного файлу параметрів, який ідентифікується рядком ресурсів R.string.preference_file_key і відкриває його за допомогою закритого режиму, тому файл доступний лише для вашого додатку:

Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
        getString(R.string.preference_file_key), Context.MODE_PRIVATE);

При присвоєнні назви спільним файлам налаштувань, ви повинні використовувати ім'я, яке однозначно ідентифікує ваш додаток, наприклад,

"com.example.myapp.PREFERENCE_FILE_KEY"

Крім того, якщо вам потрібний тільки один спільний файл налаштувань для вашої activity, то можете використовувати метод getPreferences():

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

Увага: Якщо ви створити спільний файл налаштувань з MODE_WORLD_READABLE або MODE_WORLD_WRITEABLE, то будь-які інші додатки, які знають ідентифікатор файлу, можуть отримати доступ до даних.

Запис до спільних налаштувань

Для запису в спільний файл налаштувань, створіть SharedPreferences.Editor, викликавши edit() на своєму SharedPreferences.
Передайте ключі і значення, які хочете записати, з такими методами, як putInt() і putString(). Тоді викликайте commit(), щоб зберегти зміни. Наприклад:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();

Читання із спільних налаштувань

Щоб отримати значення із спільного файлу налаштувань, викликайте такі методи, як getInt() і getString(), які забезпечують ключ для значення, яке хочете, і, необов'язково, щоб повернулося значення за замовчуванням, якщо ключ відсутній. Наприклад:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);

(Джерело: developer.android.com)

Новини

  • Платформа IoT для Raspberry Pi має прикладну програму IFTTT для мобільних пристроїв/хмар
    Платформа IoT для Raspberry Pi має прикладну програму IFTTT для мобільних пристроїв/хмар

    Плата прототипування Cloudio від GrospIO для Raspberry Pi включає 1-дюймовий OLED-дисплей, сенсори, 6 входів/виходів та порт сервоприводу, керується за допомогою мобільного/хмарного додатку. Cloudio дозволяє додавати до функцій IoT підтримку голосу та голосового керування, а також програмне виведення мови. Cloudio оснащена 3-ма цифровим виходами, 3-ма входами для аналогових сигналів і міні портом для сервоприводу, який ідеально підходить для панорамування/нахилу, програм інтелектуального блокування. Інші функції включають тактильний перемикач, RGB світлодіодний індикатор і зумер.

    in Новини

Записатися на курс