我是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字符串的形式获取数据,然后将其转换为对象并返回一个值。保存并使用您自己的功能