【发布时间】:2013-08-10 00:50:49
【问题描述】:
我想在内部存储中存储一些数据,例如键和值对。 所以我使用 HashMap 来存储键值对。但是我没有足够的解决方案来存储和检索这个 HashMap 到 sharedpreferences 中。 请给我一些解决方案。
我把我的代码放在下面:
HashMap<String, String> MapListMesasges = new HashMap<String, String>();
MapListMesasges.put(FromName, message.getBody());
preferences = mActivity.getSharedPreferences(
SharePreference_messages_history_name,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
for (Entry<String, String> entry : MapListMesasges
.entrySet()) {
editor.putString(entry.getKey(), entry.getValue());
}
editor.commit();
并从 Sharedpreferences 中检索数据:
preferences = mActivity.getSharedPreferences(
SharePreference_messages_history_name, Context.MODE_PRIVATE);
for (Entry<String, ?> entry : preferences.getAll().entrySet()) {
MapListMesasges.put(entry.getKey(), entry.getValue().toString());
}
我还将在适配器中存储 hashmap 并设置到 listview 中。 我的主要目的是将数据存储和检索到共享首选项中,并将数据显示到列表视图中。
提前致谢。
【问题讨论】:
-
您是否在日志中打印了数据?您是否收到了?
-
有什么问题?检索值时是否为 null?
-
SharedPreferences不应该这样使用。但是,您可以这样使用它,并且代码看起来好像可以工作。但是如果你有一组未定义的键,你应该考虑使用数据库或其他东西。 -
我必须将该数据存储到内部存储中。所以我正在使用 sharedpreferences。是的,我必须检索值。但我不知道如何将该哈希图存储在列表视图中。
-
将 hasmap 列表作为参数传递给您的自定义 adpater..并将其设置为您的列表视图。
标签: java android hashmap sharedpreferences