SharedPreferences 似乎是您实现它的最简单方法,我认为您误解了它们的用法,或者将名称与“首选项”屏幕混淆了,因为您可以使用 SharedPreferences 方法来保存任何内容(嗯,任何基本数据类型)坚持不懈。
例如,我使用它来保存我的应用程序的 JSON 数据(就将用户的抽认卡保存在 JSONArray 中而言,这可能是一种不错的方式)。
/**
* Retrieves data from sharedpreferences
* @param c the application context
* @param pref the preference to be retrieved
* @return the stored JSON-formatted String containing the data
*/
public static String getStoredJSONData(Context c, String pref) {
if (c != null) {
SharedPreferences sPrefs = c.getSharedPreferences("AppPreferences", Context.MODE_PRIVATE);
return sPrefs.getString(pref, null);
}
return null;
}
/**
* Stores the most recent data into sharedpreferences
* @param c the application context
* @param pref the preference to be stored
* @param policyData the data to be stored
*/
public static void setStoredJSONData(Context c, String pref, String policyData) {
if (c != null) {
SharedPreferences sPrefs = c.getSharedPreferences("AppPreferences", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sPrefs.edit();
editor.putString(pref, policyData);
editor.commit();
}
}
其中字符串 'pref' 是用于引用该特定数据的标记,例如:“taylor.matt.data1”将引用一段数据,可用于从 SharedPreferences 检索或存储它