Этот урок научит вас
Вы также должны прочитать
Если у вас есть относительно небольшая коллекция пар ключ-значение, которую вы хотели бы сохранить, вы должны использоватьSharedPreferences
API. SharedPreferences
объект указывает на файл, содержащий пары ключ-значение и обеспечивает простые методы для их чтения и записи. Каждый SharedPreferences
файл управляется библиотекой и может быть личным или общим.
Этот курс покажет вам, как использоватьSharedPreferences
API для сохранения и извлечения простых значений.
Примечание: SharedPreferences
API предназначены только для чтения и записи пар ключ-значение, и вы не должны путать их с Preference
API, которые помогают вам строить пользовательский интерфейс для ваших настроек приложения (хотя они используютSharedPreferences
в качестве реализации, чтобы сохранить настройки приложение). Информацию об использовании Preference
API, см. Настройки.
[wpanchor id=»1″]
Получить общие настройки
Вы можете создать новый общий файл настроек или получить доступ к существующему вызвав один из двух методов:
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
, то любые другие приложения, которые знают идентификатор файла, могут получить доступ к данным.
[wpanchor id=»2″]
Сохранить общие настройки
Для записи в общий файл настроек, создайте 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();
[wpanchor id=»3″]
Считать общие настройки
Чтобы получить значения из общего файла настроек, вызывайте методы, такие как 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);