android - 如何在 Android 上的 SharedPreferences 中保存/存储对象?

标签 android sharedpreferences

我需要在很多地方获取用户对象,其中包含很多字段。登录后,我想保存/存储这些用户对象。我们如何实现这种场景?

我不能这样存储:

SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString("BusinessUnit", strBusinessUnit);

最佳答案

您可以使用 gson.jar 将类对象存储到 SharedPreferences 中。 您可以从 google-gson 下载此 jar

或者在你的 Gradle 文件中添加 GSON 依赖:

implementation 'com.google.code.gson:gson:2.8.8'

您可以找到最新版本here

创建共享偏好:

SharedPreferences  mPrefs = getPreferences(MODE_PRIVATE);

保存:

MyObject myObject = new MyObject;
//set variables of 'myObject', etc.

Editor prefsEditor = mPrefs.edit();
Gson gson = new Gson();
String json = gson.toJson(myObject);
prefsEditor.putString("MyObject", json);
prefsEditor.commit();

检索:

Gson gson = new Gson();
String json = mPrefs.getString("MyObject", "");
MyObject obj = gson.fromJson(json, MyObject.class);

关于android - 如何在 Android 上的 SharedPreferences 中保存/存储对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7145606/

相关文章:

java - Android - 在 Backpress 期间处理 fragment

android - 一个 galaxy 选项卡上只有一个应用程序?

安卓共享偏好

android - 如何测试 androidx (proto) 数据存储,java.lang.ExceptionInInitializerError

java - SharedPreferences 不增加整数值 - Android

android如何做一个select和where join语句

android - 如何在 ubuntu 上的 android studio 2.2 中包含 opencv 和 opencv_contrib 模块?

java - 发送长信息到共享首选项 - Android

java - 改造无法将新 token 设置为请求 header

android - 使用 FAST 检测器在 Android 上实时进行对象识别