我想知道如何打印/显示列表中任意项目的文本?下面是我拥有的列表的代码
class TaskData extends ChangeNotifier {
List<Task> _tasks = [
Task(name: "Task one"),
Task(name: "Task two"),
Task(name: "Task three"),
];
UnmodifiableListView<Task> get tasks {
return UnmodifiableListView(_tasks);
}
int get taskCount {
return _tasks.length;
}
void randomvo() {
var randomItem = (_tasks.toList()..shuffle()).first;
print(randomItem);
}
这里我有一个不同的带有按钮的文件,我设法获得了一些代码来测试它,但它不是从列表中打印随机名称(如任务一或任务二),而是打印“任务的实例”
return Scaffold(
floatingActionButton: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
FloatingActionButton.extended(
label: const Text("Randomize"),
backgroundColor: Colors.red,
onPressed: () {
Provider.of<TaskData>(context, listen: false).randomvo();
}),
如果有人能帮我解决这个问题我会很感激的谢谢!
发布于 2021-09-12 05:52:50
好吧,我真不敢相信我真的做对了,而且它工作了:O在花了几个小时玩代码之后,谷歌终于让它工作了!我在我的一个脚本文件中用列表写下了这段代码。
void randomvo(String) {
var randomItem = (_tasks.toList()..shuffle()).first.name;
print(randomItem);
}
然后我在按钮上写下了这个
onPressed: () {
Provider.of<TaskData>(context, listen: false).randomvo(String);
}
成功了!希望这能帮助那些遇到类似情况的人
发布于 2021-09-12 05:55:01
像这样修改你的任务类
class Task{
String ? name;
Task({this.name});
Map<String, dynamic> toJson() => {
"name": name,
};
}
在随机化中使用这个
print(jsonEncode(randomItem.toJson();
https://stackoverflow.com/questions/69147102
复制相似问题