Как получить содержимое файла SharedPreferences и перезаписать его?

Я новичок в Android-разработке. Я просматриваю API здесь http://developer.android.com/reference/android/content/SharedPreferences.html

но я не понимаю, как на самом деле получить содержимое файла и прочитать или записать его.

У меня есть этот код для получения объекта SharedPreferences:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences( MyClassName.this);

но в этом случае я получаю ссылку на sharedPreferences, но не подключение к моему файлу, в котором хранятся данные о настройках.

Может быть, я неправильно понимаю API, но как мне получить ссылку на файл и прочитать/записать его?

Спасибо!


person GeekedOut    schedule 02.03.2012    source источник


Ответы (3)


Если вы хотите получить значения из ваших SharedPreferneces, вы должны использовать (этот пример работает со строками, но вы также можете вызывать getBoolean, getInt и т. д.)

prefs.getString("myString", "defaultValue"); // "defaultValue" will be returned in case "myString" wasn't saved on the SharedPreferences

чтобы сохранить некоторые значения, вы можете сделать это следующим образом:

prefs.edit()
.putString("myString", "newValue")
.putBoolean("working", true)
.commit();

Как видите, вы можете редактировать более одного значения одновременно.

person SERPRO    schedule 02.03.2012

edit() вернет вам редактор, который вы должны использовать, чтобы изменить файл общих настроек, и когда вы закончите его редактирование, вызовите commit(), чтобы внести изменения навсегда

person Blackbelt    schedule 02.03.2012

но в этом случае я получаю ссылку на sharedPreferences, но не подключение к моему файлу, в котором хранятся данные о настройках.

Объект SharedPreferences имеет «соединение» с файлом, в котором хранятся данные о предпочтениях.

Может быть, я неправильно понимаю API, но как мне получить ссылку на файл и прочитать/записать его?

Чтобы прочитать предпочтения, используйте геттеры на SharedPreferences (например, getString()). Чтобы написать предпочтения самостоятельно:

  • Получите SharedPreferences.Editor, вызвав edit() на объекте SharedPreferences
  • Используйте сеттеры на Editor (например, putString())
  • Позвоните apply() (если возможно) или commit() по номеру Editor, чтобы сохранить изменения.

Кроме того, вы можете (и во многих случаях должны) также использовать PreferenceActivity, чтобы позволить пользователям напрямую просматривать и изменять свои предпочтения.

person CommonsWare    schedule 02.03.2012