在 SharedPreferences 中保存模型 class 对象
Save Model class object in SharedPreferences
我是 android 开发的新手。我将用户个人资料信息保存在共享首选项中,这样每当我需要显示用户名、电子邮件或其他数据时,我就会从共享首选项中调用它,而不是一次又一次地从数据库中调用。我想保存并获取完整的配置文件,而不是获取单个字符串。以下是我使用的函数
public void save(String key, String value) {
SharedPreferences.Editor editor
= context.getSharedPreferences("data", context.MODE_PRIVATE).edit();
editor.putString(key, value);
editor.commit();
}
public String get(String key) {
SharedPreferences sharedPreferences
= context.getSharedPreferences("data", context.MODE_PRIVATE);
return sharedPreferences.getString(key, "");
}
我想要的功能如下
public void save(String key, MyModel object) {
SharedPreferences.Editor editor
= context.getSharedPreferences("data", context.MODE_PRIVATE).edit();
editor.putString(key, object);
editor.commit();
}
但是共享首选项需要唯一的字符串来保存和获取。有没有可能的解决方案来保存其中的对象?或共享偏好的任何替代方案。 (不包括 SQLite 或其他复杂数据库)
您可以将您的对象转换为 Json,然后将其作为字符串保存在您的共享首选项中,如下面的代码所示:
public void save(String key, MyModel object) {
String myObject = Gson().toJson(object);
SharedPreferences.Editor editor
= context.getSharedPreferences("data", context.MODE_PRIVATE).edit();
editor.putString(key, myObject);
editor.commit();
}
然后你可以像这样将它转换回对象:
public MyModel get(String key) {
SharedPreferences sharedPreferences
= context.getSharedPreferences("data", context.MODE_PRIVATE);
String myObject = sharedPreferences.getString(key, "");
return Gson().fromJson(myObject, MyModel.class);
}
这个要保存数据
public void saveData(String key, MyModel object) {
save(key, new Gson().toJson(object));
}
本次获取数据
public MyModel getData(String key) {
String data = get(key);
return new Gson().fromJson(data, MyModel.class);
}
如何运作?
此保存方法将您的模型对象转换为 JSON 字符串,然后将字符串保存到共享首选项中,在 get 函数中也是如此。它以 JSON 字符串的形式获取数据,然后将其转换为您的对象和 returns 一个值。
为了保存和获取使用你自己的函数
我是 android 开发的新手。我将用户个人资料信息保存在共享首选项中,这样每当我需要显示用户名、电子邮件或其他数据时,我就会从共享首选项中调用它,而不是一次又一次地从数据库中调用。我想保存并获取完整的配置文件,而不是获取单个字符串。以下是我使用的函数
public void save(String key, String value) {
SharedPreferences.Editor editor
= context.getSharedPreferences("data", context.MODE_PRIVATE).edit();
editor.putString(key, value);
editor.commit();
}
public String get(String key) {
SharedPreferences sharedPreferences
= context.getSharedPreferences("data", context.MODE_PRIVATE);
return sharedPreferences.getString(key, "");
}
我想要的功能如下
public void save(String key, MyModel object) {
SharedPreferences.Editor editor
= context.getSharedPreferences("data", context.MODE_PRIVATE).edit();
editor.putString(key, object);
editor.commit();
}
但是共享首选项需要唯一的字符串来保存和获取。有没有可能的解决方案来保存其中的对象?或共享偏好的任何替代方案。 (不包括 SQLite 或其他复杂数据库)
您可以将您的对象转换为 Json,然后将其作为字符串保存在您的共享首选项中,如下面的代码所示:
public void save(String key, MyModel object) {
String myObject = Gson().toJson(object);
SharedPreferences.Editor editor
= context.getSharedPreferences("data", context.MODE_PRIVATE).edit();
editor.putString(key, myObject);
editor.commit();
}
然后你可以像这样将它转换回对象:
public MyModel get(String key) {
SharedPreferences sharedPreferences
= context.getSharedPreferences("data", context.MODE_PRIVATE);
String myObject = sharedPreferences.getString(key, "");
return Gson().fromJson(myObject, MyModel.class);
}
这个要保存数据
public void saveData(String key, MyModel object) {
save(key, new Gson().toJson(object));
}
本次获取数据
public MyModel getData(String key) {
String data = get(key);
return new Gson().fromJson(data, MyModel.class);
}
如何运作?
此保存方法将您的模型对象转换为 JSON 字符串,然后将字符串保存到共享首选项中,在 get 函数中也是如此。它以 JSON 字符串的形式获取数据,然后将其转换为您的对象和 returns 一个值。 为了保存和获取使用你自己的函数