2016-03-31 24 views
-1

我需要使用會話到我的應用程序,所以我創建了一個名爲SessionManager的java類,在這裏我初始化了會話,但是當我創建了三個不同的獲取函數並且我使用它們時,會話的值已被覆蓋。 。如何從SharedPreferences獲取數據?

我funtions是:

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); 

那麼是什麼問題?

+0

您應該閱讀以下內容的Shared Preferences部分:http://developer.android.com/guide/topics/data/data-storage.html –

回答

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(); 
}