我有一个HashMap是这样的:如何将hashmap值保存到sharedpreference?
static final ArrayList<HashMap<String,String>> tasklist = new ArrayList<HashMap<String,String>>();
我想将hashMap
ArrayList内容存储sharedpreference
。
我该怎么做?而且,如何在之后检索值?
我有一个HashMap是这样的:如何将hashmap值保存到sharedpreference?
static final ArrayList<HashMap<String,String>> tasklist = new ArrayList<HashMap<String,String>>();
我想将hashMap
ArrayList内容存储sharedpreference
。
我该怎么做?而且,如何在之后检索值?
我认为正确的方法是将您的hashmap保存在数据库中。你可以阅读有关的sqlite这里http://developer.android.com/reference/android/database/sqlite/package-summary.html
这里是我在我的项目中使用这种东西,它可以帮助你希望:)
下面是如何拯救,
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);
我通过使用GSON框架将它们序列化为JSON,将Java对象存储在Shared Preferences中。我更喜欢JSON,因为它是人类可读的,并且在对后端服务进行HTTP调用时,我的应用程序已经处理了JSON。我认为我不需要创建/维护SQL Lite数据库就具有适当的复杂性。
我有一个更有趣的用途是维护一个应用程序范围的上传队列。我的应用程序允许将视频和图像上传到后端服务器。我在共享偏好内的状态列表中追踪它们。任何需要这些数据的活动都可以从这些“队列”中读取,而不是将数据全部传递给这些“队列”。
如果例如内容是这样的,你如何提取内容? [“{action = some text,task = some text}”,“{action = some text 2,task = some text 2}”] – user3325919
@ user3325919所以让我弄清楚这一点。你使用的数据类型就像键值?你有钥匙的地方,与它相对应的价值?因为你已经写了行动=一些文字和任务= sometext。我假设“sometext”是字符串类型。什么类型是“行动”和“任务”? – Ogen
@Ogen:你的方式只适用于'String'不适用于'Object'的权利? –