android - 如何将 HashMap 保存到共享首选项?

标签 android sharedpreferences

如何在 Android 中将 HashMap 对象 保存到 Shared Preferences 中?

最佳答案

我使用 GsonHashMap 转换为 String 然后保存到 SharedPrefs

private void hashmaptest()
{
    //create test hashmap
    HashMap<String, String> testHashMap = new HashMap<String, String>();
    testHashMap.put("key1", "value1");
    testHashMap.put("key2", "value2");

    //convert to string using gson
    Gson gson = new Gson();
    String hashMapString = gson.toJson(testHashMap);

    //save in shared prefs
    SharedPreferences prefs = getSharedPreferences("test", MODE_PRIVATE);
    prefs.edit().putString("hashString", hashMapString).apply();

    //get from shared prefs
    String storedHashMapString = prefs.getString("hashString", "oopsDintWork");
    java.lang.reflect.Type type = new TypeToken<HashMap<String, String>>(){}.getType();
    HashMap<String, String> testHashMap2 = gson.fromJson(storedHashMapString, type);

    //use values
    String toastString = testHashMap2.get("key1") + " | " + testHashMap2.get("key2");
    Toast.makeText(this, toastString, Toast.LENGTH_LONG).show();
}

关于android - 如何将 HashMap 保存到共享首选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7944601/

相关文章:

java - 指纹识别器 Espresso 测试

Android-使后退按钮在选项卡之间切换(选项卡导航操作栏)?

java - findPreference() 返回 null

flutter - 如何在 Flutter 中将 List<Object> 保存到 SharedPreferences?

java - 如何根据 Android 中的服务器响应启用/禁用操作栏上的选项菜单项

java - 将数据库从一个应用程序复制到另一应用程序

android - 在运行时获取 Android 屏幕尺寸类型(drawable-small、drawable-normal 等)

android - 从后台打开应用程序后如何检索上一个 fragment ? (未杀死的应用)

java - 在微调器中获取用户选择,将其存储在sharedPreferences中,并在另一个 Activity 中使用它

Android SharedPreference 生命周期