我以下列方式创建了一个HashMap:
HashMap<Integer, String> buttons = new HashMap<Integer, String>();
我需要保留这种格式,但是我看到的这个解决方案的每个答案都只适用于HashMap<String, String>
由于
答案 0 :(得分:14)
嘿,我最终找到了一条路:)
我刚刚更改了我必须格式化的HashMap,然后执行以下操作来保存内容:
SharedPreferences.Editor editor = getSharedPreferences(PREFS_NAME, 0).edit();
for( Entry entry : backUpCurency_values.entrySet() )
editor.putString( entry.getKey(), entry.getValue() );
editor.commit();
以及以下内容来检索HashpMap:
SharedPreferences prefs = getSharedPreferences(PREFS_NAME, 0);
for( Entry entry : prefs.getAll().entrySet() )
backUpCurency_values.put( entry.getKey(), entry.getValue().toString() );
答案 1 :(得分:5)
HashMap
中不支持任何SharedPreferences
。您可以将整个SharedPreferences
视为有点像HashMap
,但它不是HashMap
,并且您无法在个人偏好中存储HashMap
。
我们欢迎您将HashMap
转换为可以存储在String
值中的SharedPreferences
,例如将其转换为JSON。
答案 2 :(得分:0)
将其转换为JSON(如CommonsWare指出的那样)是一种选择。或者,我这样做的方式(因为我不熟悉JSON)是使用Apache的ObjectSerializer类(在这里找到ObjectSerializer.java)来序列化它。
如果要存储它,只需调用serialize方法,并在想要将其重新转换为Map时反序列化。