我需要在很多地方获取用户对象,其中包含很多字段。登录后,我想保存/存储这些用户对象。我们如何实现这种场景?
我不能这样存储:
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/