android - 在共享首选项中存储和检索类对象

标签 android object sharedpreferences

在 Android 中,我们可以将一个类的对象存储在共享偏好中,然后再检索该对象吗?

如果有可能怎么办?如果不可能,还有其他可能性吗?

我知道序列化是一种选择,但我正在寻找使用共享偏好的可能性。

最佳答案

是的,我们可以使用 Gson

GitHub 下载工作代码

SharedPreferences mPrefs = getPreferences(MODE_PRIVATE);

为了保存

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

为了得到

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

更新1

最新版本的 GSON 可以从 github.com/google/gson 下载。 .

更新2

如果您使用的是 Gradle/Android Studio,只需在 build.gradle 依赖项部分添加以下内容 -

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

关于android - 在共享首选项中存储和检索类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5418160/

相关文章:

android - 安全性:应用程序源代码中的谷歌客户端 secret 安全吗?

android - 设备锁定时的指纹 API 行为

android - Android 多用户支持(4.2 中新增)对服务器端数据模型(例如 android_id)的影响

c# - 如何在C++中将对象作为参数传递?

java - 如何使用 SharedPreferences 保存 arrayList<LatLng>

android - Android 上的异常处理和生命周期?

javascript - 如何从map函数中的对象获取key?

javascript - 对象过滤某些值

flutter - 如何在flutter中使用当前主题保存应用程序的状态?

android - SharedPreferencesChangeListener 不工作