2010-07-25 3 views
30

У меня есть страница настроек. Он имеет поле «Показать информационный экран» (как флажок).android sharedpreferences заданное значение

У меня также есть информационная страница, которая также должна иметь флажок «Показывать мне снова».

Как я понимаю, я могу получить значение из настроек страницы с помощью PreferencesManager.getDefaultPreferences(context) ...

Но как я должен установить значение предпочтения для флажка на информационной странице?

Я попытался использовать context.getSharedPreferences(PREF_NAME, 0).edit(), чтобы установить значение, но оно не коррелирует с соответствующим значением PreferencesManager.

Что мне делать ??? F1

ответ

98

Это зависит от того, есть ли у вас один набор предпочтений для вашего приложения или один набор для каждого действия.

Я использовал такой код:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); 
Editor editor = prefs.edit(); 
editor.putBoolean(PREF_NAME, false); 
editor.commit(); 

и

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); 
if (prefs.getBoolean(PREF_NAME, true)) { 
    // etc 
} 
+0

спасибо !!! – davs

+4

+1 для отличного ответа. Я хотел бы подчеркнуть, что «Редактор» - это не ** модальный визуальный редактор, ожидающий взаимодействия с пользователем. Это просто атомный способ сделать противоположное 'SharedPreferences.getString()'. – ef2011

+0

use apply() вместо commit() будет делать это в фоновом режиме. –