Another good solution is to use GSON. Here’s an example:
private static final String MAP = "map";
private static final Type MAP_TYPE = new TypeToken<Map<MyObjA, MyObjB>>() {}.getType();
private static SharedPreferences prefs = MyApplication.getContext().getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
private static Map<MyObjA, MyObjB> myMap;
public static void saveMap (Map<MyObjA, MyObjB> map) {
SharedPreferences.Editor editor = prefs.edit();
editor.putString(MAP, new Gson().toJson(map));
editor.commit();
myMap = map;
}
public static Map<MyObjA, MyObjB> loadMap() {
if (myMap == null) {
myMap = new Gson().fromJson(prefs.getString(MAP, null), MAP_TYPE);
}
return myMap;
}
More information about gson at http://code.google.com/p/google-gson/
Pretty simple right? 😉
Take care