所以我一直在尝试设置和获取一个具有共享首选项的列表,但在检索时遇到了问题
import 'package:justatest/model/arguments.dart';
import 'package:provider/provider.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class transactionsAdd extends ChangeNotifier {
List<Addtx> _addtx = [];
List<Addtx> get getAddtx {
return _addtx;
}
void addTrx(var balance, String note, String category, bool plusorminus,
DateTime selectedDate) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
Addtx tdl = new Addtx(note, balance, category, plusorminus, selectedDate);
_addtx.insert(0, tdl);
prefs.setStringList("title1", [_addtx.toString()]);
notifyListeners();
}
loadC2() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
_addtx = prefs.getStringList('title1')?? [] ;
notifyListeners();
}
}
`
有问题
_addtx = prefs.getStringList('title1')?? [] ;
类型为"List"的值不能分配给类型为的变量"列表"。尝试更改变量的类型,或强制转换右侧键入"列表"。dartinvalid_assignment
尽管该消息令人困惑,但如果您意识到您的list_addtx仅用于addtx对象,而sharedpreferences getStringList是字符串,则它是有意义的。因此,您不能将列表分配给列表。你应该这样做:
如何保存列表<对象>到Flutter中的SharedPreferences?