2014-03-02 102 views
1

我有一个HashMap是这样的:如何将hashmap值保存到sharedpreference?

static final ArrayList<HashMap<String,String>> tasklist = new ArrayList<HashMap<String,String>>(); 

我想将hashMap ArrayList内容存储sharedpreference

我该怎么做?而且,如何在之后检索值?

回答

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); 
Set<String> set = new HashSet<String>(); 
SharedPreferences prefs = getApplicationContext().getSharedPreferences(
    "My Preferences", Context.MODE_PRIVATE); 
set = prefs.getStringSet("myStringSet", null); 
+0

如果例如内容是这样的,你如何提取内容? [“{action = some text,task = some text}”,“{action = some text 2,task = some text 2}”] – user3325919

+0

@ user3325919所以让我弄清楚这一点。你使用的数据类型就像键值?你有钥匙的地方,与它相对应的价值?因为你已经写了行动=一些文字和任务= sometext。我假设“sometext”是字符串类型。什么类型是“行动”和“任务”? – Ogen

+0

@Ogen:你的方式只适用于'String'不适用于'Object'的权利? –

0

我通过使用GSON框架将它们序列化为JSON,将Java对象存储在Shared Preferences中。我更喜欢JSON,因为它是人类可读的,并且在对后端服务进行HTTP调用时,我的应用程序已经处理了JSON。我认为我不需要创建/维护SQL Lite数据库就具有适当的复杂性。

我有一个更有趣的用途是维护一个应用程序范围的上传队列。我的应用程序允许将视频和图像上传到后端服务器。我在共享偏好内的状态列表中追踪它们。任何需要这些数据的活动都可以从这些“队列”中读取,而不是将数据全部传递给这些“队列”。

相关问题