Класс хранения настроек
- public class Prefs {
- private static final String HISCORE = "hiscore";
- private static final String USERNAME = "username";
- private static Prefs sInstance;
- public static synchronized Prefs with(Context ctx) {
- if (sInstance == null) {
- sInstance = new Prefs(ctx.getSharedPreferences("game", Context.MODE_PRIVATE));
- }
- return sInstance;
- }
- private final SharedPreferences mPref;
- private final Prefs.Editor mPrefsEditor;
- private Prefs(SharedPreferences pref) {
- mPref = pref;
- mPrefsEditor = new Editor();
- }
- public int getHiScore() {
- return mPref.getInt(HISCORE, 0);
- }
- public String getUsername() {
- return mPref.getString(USERNAME, "anonymous");
- }
- public Editor edit() {
- return mPrefsEditor;
- }
- public class Editor {
- private final SharedPreferences.Editor mEditor;
- private Editor() {
- mEditor = mPref.edit();
- }
- public Editor setHiScore(int score) {
- mEditor.putInt(HISCORE, score);
- return this;
- }
- public Editor setUsername(String username) {
- mEditor.putString(USERNAME, username);
- return this;
- }
- public void apply() {
- mEditor.apply();
- }
- }
- }
Для хранения настроек удобно создать один класс, с которым потом можно работать из любой точки приложения.
Загрузка:
Сохранение:
Модификатор synchronized можно убрать, если приложение не многопоточное.
Загрузка:
- String user = Prefs.with(getContext()).getUsername();
- // Или
- Prefs prefs = Prefs.with(getContext());
- int score = prefs.getHiScore();
- String user = prefs.getUsername();
Сохранение:
- Prefs.with(getContext()).edit()
- .setHiScore(100500)
- .setUsername("Helltar")
- .apply();
Модификатор synchronized можно убрать, если приложение не многопоточное.