为了账号安全,请及时绑定邮箱和手机立即绑定

Android SharedPreferences如何保存/存储对象

Android SharedPreferences如何保存/存储对象

呼唤远方 2019-07-27 12:15:21
Android SharedPreferences如何保存/存储对象我们需要在许多地方获取用户对象,其中包含许多字段。登录后,我想保存/存储这些用户对象。我们如何实现这种场景?我不能这样储存:SharedPreferences.Editor prefsEditor = myPrefs.edit(); prefsEditor.putString("BusinessUnit", strBusinessUnit);
查看完整描述

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

可以使用gson.jar将类对象存储到SharedPreferences..您可以从google-gson

或者在Gradle文件中添加gson依赖项:

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

创建共享偏好:

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);



查看完整回答
反对 回复 2019-07-28
?
白衣非少年

TA贡献1155条经验 获得超0个赞

要添加到@MuhammadAamirALi的答案,可以使用gson保存和检索对象列表

将用户定义对象的列表保存到SharedPreferences

public static final String KEY_CONNECTIONS = "KEY_CONNECTIONS";SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
User entity = new User();// ... set entity fieldsList<Connection> connections = entity.getConnections();
// convert java object to JSON format,
// and returned as JSON formatted stringString connectionsJSONString = new Gson().toJson(connections);
editor.putString(KEY_CONNECTIONS, connectionsJSONString);editor.commit();

从SharedPreferences获取用户定义对象的列表

String connectionsJSONString = getPreferences(MODE_PRIVATE).getString(KEY_CONNECTIONS, null);
Type type = new TypeToken < List < Connection >> () {}.getType();
List < Connection > connections = new Gson().fromJson(connectionsJSONString, type);





查看完整回答
反对 回复 2019-07-28
  • 3 回答
  • 0 关注
  • 340 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信