Flutter 如何在具有共享首选项的颤振中保留自定义对象列表?
我想持久化一个具有自定义对象的列表,我甚至编写了序列化和反序列化的方法,但我不知道如何将它与Flutter 如何在具有共享首选项的颤振中保留自定义对象列表?,flutter,dart,sharedpreferences,Flutter,Dart,Sharedpreferences,我想持久化一个具有自定义对象的列表,我甚至编写了序列化和反序列化的方法,但我不知道如何将它与SharedReferences和FutureBuilder 以下是自定义对象: class Fact { String factText; Color factColor; Fact(this.factText, this.factColor); Map<String, dynamic> toJson() => {'factText': factTex
SharedReferences
和FutureBuilder
以下是自定义对象:
class Fact {
String factText;
Color factColor;
Fact(this.factText, this.factColor);
Map<String, dynamic> toJson() =>
{'factText': factText, 'factColor': factColor};
Fact.fromJson(Map<String, dynamic> json)
: factText = json['factText'],
factColor = json['factColor'];
}
类事实{
字符串文本;
颜色;
事实(this.factText,this.factColor);
映射到JSON()=>
{'factText':factText,'factColor':factColor};
Fact.fromJson(映射json)
:factText=json['factText'],
factColor=json['factColor'];
}
如果要在共享首选项中存储列表,则可以使用以下方法:
///将字符串[value]列表保存到后台的持久存储中。
///
///如果[value]为null,则相当于对[key]调用[remove()]。
Future setStringList(字符串键,列表值)=>
_setValue('StringList',键,值);
与相同,为什么不使用简单的平面文件?@pskink共享首选项还不够?共享首选项作为xml文件实现(至少在android上)-因此,我不认为这是储存大量data@pskink但是我仍然需要进行序列化,对吗?所以我不需要序列化我的对象?您仍然需要使用fromjson
/// Saves a list of strings [value] to persistent storage in the background.
///
/// If [value] is null, this is equivalent to calling [remove()] on the [key].
Future<bool> setStringList(String key, List<String> value) =>
_setValue('StringList', key, value);