Как получить данные из SharedPreferences?

Мне нужно использовать сессии в моем приложении, поэтому я создал класс Java под названием SessionManager и здесь я инициализировал свои сеансы, но когда я создал три разные функции get и использовал их, значения сеансов были перезаписаны...

Мои функции:

public String getBname() {
    return pref.getString(BREAKFAST_NAME,null);
}

public String getBcalories() {
    return pref.getString(BREAKFAST_CALORIES,null);
}

public String getBquantity() {
    return pref.getString(BREAKFAST_QUANTITY,null);
}

и я называю их так:

 String name=sessionDay.getBname();
 String calories=sessionDay.getBcalories();
 String quantity=sessionDay.getBquantity();
 etFBreakFast.setText("Name: " + name + "\n" + "Calories: " + calories + "\n" + "Quantity: " + quantity);

Так в чем проблема?

1 ответ

Решение

Вы можете использовать SharedPreferences для того, чтобы сохранить, извлечь или удалить. Проверьте следующий код.

 SharedPreferences prefs = null;
public static void storeToPrefs(Context context, String key, String value) {
    prefs = PreferenceManager.getDefaultSharedPreferences(context);
    final SharedPreferences.Editor editor = prefs.edit();
    editor.putString(key,value);
    editor.commit();
}


public static String retrieveFromPrefs(Context context, String key, String defaultValue) {
    prefs = PreferenceManager.getDefaultSharedPreferences(context);
    try {
        return prefs.getString(key, defaultValue);
    } catch (Exception e) {
        e.printStackTrace();
        return defaultValue;
    }
}

public static void deleteAllPrefs(Context context){
    prefs =  PreferenceManager.getDefaultSharedPreferences(context);
    prefs.edit().clear().commit();
}
Другие вопросы по тегам