共享首选项的特定类型的存储列表



我有我的列表,它是从json中获得的。因此,我想通过共享偏好传递该列表。但是,当我尝试使用共享偏好的setStringList时,我遇到了一个异常。

type 'List<ApprovalStatus>' is not a subtype of type 'List<String>'

ApprovalStatus是一个类,定义为:

class ApprovalStatus {
final items;
final index;
final approvalStatus;
ApprovalStatus({this.items, this.index, this.approvalStatus});
@override
String toString() {
return "${this.approvalStatus}";
}
}

我们不能使用用户定义的类型列表来共享偏好吗?如果不能,我们如何使用共享偏好存储用户定义的类别列表?

此错误表明您正试图直接传递要保存在共享prefs中的ApprovalStatus列表。它需要一个字符串列表。

试试这个:

prefs.setStringList(approvalList.map((m) => m.toString()).toList());

请确保在toString中放入一些序列化逻辑,以便可以检索回数据。

或者,您可以直接将JSON数组保存为共享prefs中的字符串属性。

否,不能将用户定义的类型直接存储在共享首选项中。

您可以将它们序列化为字符串格式,并存储。

您已经知道如何做到这一点,最常见的格式叫做json。

相关内容

  • 没有找到相关文章

最新更新