我有一个这样的散列图:
static final ArrayList<HashMap<String,String>> tasklist = new ArrayList<HashMap<String,String>>();
我想将hashMap
arraylist的内容存储到sharedpreference
。
我该怎么做?此外,如何在之后检索值?
答案 0 :(得分:2)
以下是我在项目中使用此类内容的方法,它可能对您有所帮助:)
以下是如何保存它们:
Set<String> set = new HashSet<String>();
SharedPreferences prefs = getApplicationContext().getSharedPreferences(
"My Preferences", Context.MODE_PRIVATE);
SharedPreferences.Editor prefsEditor = prefs.edit();
prefsEditor.putStringSet("myStringSet", set);
prefsEditor.commit();
以下是如何获得它们:
Set<String> set = new HashSet<String>();
SharedPreferences prefs = getApplicationContext().getSharedPreferences(
"My Preferences", Context.MODE_PRIVATE);
set = prefs.getStringSet("myStringSet", null);
答案 1 :(得分:0)
我认为正确的方法是将您的hashmap保存在数据库中。你可以在这里阅读sqlite http://developer.android.com/reference/android/database/sqlite/package-summary.html
答案 2 :(得分:0)
我将Java对象存储在共享首选项中,方法是使用GSON框架将它们序列化为JSON。我更喜欢JSON,因为它是人类可读的,我的应用程序在对后端服务进行HTTP调用时已经处理了JSON。我认为我没有必要创建/维护SQL Lite数据库的复杂性。
我对此有一个更有趣的用途是维护一个应用程序范围的上传队列。我的应用程序允许将视频和图像上传到后端服务器。我在共享首选项中的状态列表中跟踪它们。任何需要此数据的活动都可以从这些“队列”中读取,而不是将数据传递到整个地方。