list - 试图填写班级列表
问题描述
真的很抱歉,我是个初学者……最后,我只有一个名称/位置相同的 8 个 TimeCardDayStrip 列表,而它应该是 8 个不同的名称/角色。我不明白我在这里做错了什么:非常感谢
'''
class TimeCardDayStrip {
String name, position;
DateTime day;
@override
String toString(){
return '{ $this.name, $this.position }';
}
}
void main() {
var tcds = TimeCardDayStrip();
var listOfTcds = [];
List<String> names, roles;
names = ["Michael", "Gunnell", "Byrne", "Aspromonte", "Davis", "Adam Jordan", "Mirko"];
roles = ["Director", "Vice", "President", "1ST", "KEY 2ND", "2ND", "BASECAMP PA", "PA", " PA", "Add'l PA"];
for (int i = 0; i < names.length; i++) {
tcds.name = names[i];
tcds.position = roles[i];
listOfTcds.add(tcds);
// checking the list as it creates
print(listOfTcds[i].name+' is '+listOfTcds[i].position);
}
//print the list of card to check
print('print the list of time card to check');
for (int x = 0; x < listOfTcds.length; x++){
print (listOfTcds.elementAt(x).name);
}
}
'''
解决方案
如果您只想打印每个名称:将其放入循环中(您应该在每个循环中创建新对象,而不是更新相同的对象)
for (int i = 0; i < names.length; i++) {
var tcds = TimeCardDayStrip();
tcds.name = names[i];
tcds.position = roles[i];
listOfTcds.add(tcds);
// checking the list as it creates
print('${listOfTcds[i].name} is ${listOfTcds[i].position}');
}
然后稍后
listOfTcds[x].name
如果要显示内容:
@override
Widget build(BuildContext ctx) {
return ListView.builder(
itemCount: listOfTcds.length,
itemBuilder: (context, index) {
return CustomTile(item: listOfTcds[index]);
},
);
}
推荐阅读
- angular - 如何按多个字段过滤,不包括通过公共属性向数组添加重复匹配
- c - 从指针索引赋值
- angular - 是否可以从入口组件访问服务
- javascript - 如何在下一个请求的端点(邮递员)中传递第一个 JSON 响应
- c# - 如何使用块在 sqlLite 中存储巨大的 API 响应(JSON)
- angular - Angular - 延迟加载后在孩子中定义父路由
- javascript - 页面加载后开始转换
- scala - 用另一个替换列表元素并返回新列表
- python - python: from an existing dataframe, convert epoch to readable timestamp and add to a new column
- python - 绘制分布子图