在我的应用中,我有自己创建的flashcard对象。用户可以根据需要创建任意数量的闪存卡,但是当他们退出应用程序并返回时,他们需要能够看到他们之前创建的闪存卡并能够删除它们。我设置它以便他们可以创建/删除,但如果他们退出应用程序,他们将自动删除。保存闪卡的最佳方法是什么?它目前至少有3个字符串,标题,正面和背面。
我看了几个,但我不确定如何在android开发者网站上的保存选项中包含所有三个字符串。
例如共享首选项,看起来您只能保存某些设置,但它允许用户更改这些设置。 内部/外部存储,虽然非常不同,但是如何拥有无限数量的对象,尤其是如何分别保存所有三个字符串。
这是内部存储如下所示。
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
我看不出如何保存多个对象或3个不同的字符串。
有没有人看到我的问题的解决方案?
答案 0 :(得分:1)
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