如何使用共享首选项在Android中存储HashMap <Integer,String>?

Zyz*_*yzz 3 android hashmap sharedpreferences

我用以下方式创建了一个HashMap:

HashMap<Integer, String> buttons = new HashMap<Integer, String>();

我需要这个保持这种格式,但是我所看到的这个解决方案的每个答案都只适用于 HashMap<String, String>

谢谢

Zyz*_*yzz 14

嘿,我到底找到了办法:)

我只是更改了我必须格式化的HashMap,然后执行以下操作来保存内容:

SharedPreferences.Editor editor = getSharedPreferences(PREFS_NAME, 0).edit();
for( Entry entry : backUpCurency_values.entrySet() ) 
editor.putString( entry.getKey(), entry.getValue() );
editor.commit();
Run Code Online (Sandbox Code Playgroud)

和以下检索HashpMap:

SharedPreferences prefs = getSharedPreferences(PREFS_NAME, 0);
for( Entry entry : prefs.getAll().entrySet() )
   backUpCurency_values.put( entry.getKey(), entry.getValue().toString() );
Run Code Online (Sandbox Code Playgroud)


Com*_*are 5

有任何不支持HashMapSharedPreferences.您可以将整体SharedPreferences视为有点像HashMap,但它不是a HashMap,并且您不能将其存储HashMap在个人偏好中.

您可以将您HashMap转换为String可以存储在SharedPreferences值中的值,例如将其转换为JSON.