Вот хороший пример здесь .
Итак, если ваша карта выглядит так:
HashMap<String, byte[]> = new HashMap<>();
Функции выглядят так:
public void saveHashMap(String key , Object obj) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
Gson gson = new Gson();
String json = gson.toJson(obj);
editor.putString(key,json);
editor.apply(); // This line is IMPORTANT !!!
}
public HashMap<String,byte[]> getHashMap(String key) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Gson gson = new Gson();
String json = prefs.getString(key,"");
java.lang.reflect.Type type = new TypeToken<HashMap<String,byte[]>>(){}.getType();
HashMap<String,byte[]> obj = gson.fromJson(json, type);
return obj;
}
Общий код выглядит следующим образом:
public void saveHashMap(String key , Object obj) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
SharedPreferences.Editor editor = prefs.edit();
Gson gson = new Gson();
String json = gson.toJson(obj);
editor.putString(key,json);
editor.apply(); // This line is IMPORTANT !!!
}
public HashMap<Integer,YourObject> getHashMap(String key) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
Gson gson = new Gson();
String json = prefs.getString(key,"");
java.lang.reflect.Type type = new TypeToken<HashMap<Integer,YourObject>>(){}.getType();
HashMap<Integer,YourObject> obj = gson.fromJson(json, type);
return obj;
}
Замените YourObject
на ваш Java-объект.