如何从SharedPreferences获取数据?

时间:2016-03-31 17:52:38

标签: android session sharedpreferences

我需要在我的应用程序中使用会话,所以我创建了一个名为SessionManager的java类,在这里我初始化了我的会话但是当我创建了三个不同的 get function 并且我使用它们时,会话的价值已被覆盖......

我的功能是:

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 个答案:

答案 0 :(得分: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();
}