我目前陷入混乱中。
因此,我有一个复选框,我希望每次单击该复选框时,该复选框的值都将保存在数组变量中,如果再次单击它,则该值将在数组变量中删除,因此我可以调用该数组变量并将其保存在数据库中。
这是我到目前为止所拥有的。
我的代码:
Map<String, bool> values = {
'Food': false,
'Materials': false,
};
Widget build(BuildContext context) {
return Scaffold(
appBar: new AppBar(title: new Text('CheckboxListTile demo')),
body: new ListView(
children: values.keys.map((String key) {
return new CheckboxListTile(
title: new Text(key),
value: values[key],
onChanged: (bool value) {
setState(() {
values[key] = value;
});
print(key);
},
);
}).toList(),
),
);
}
}
我的用户界面:
答案 0 :(得分:1)
要将键和值保存在列表中, 声明标题和值的模型类,
class MyClass {
String title;
bool value;
MyClass(this.title, this.value);
@override
String toString() {
return 'MyClass{title: $title, value: $value}';
}
}
现在用MyClass声明一个列表,
List<MyClass> selecteditems = List();
现在添加这样的数据,
setState(() {
values[key] = value;
selecteditems.clear();
values.forEach((key, value) {
print('${key}: ${value}');
if (value) {
selecteditems.add(MyClass(key, value));
}
});
});
要检查selected
内的输出打印build method
@override
Widget build(BuildContext context) {
print(selecteditems.toString());
输出1:已选择1个项目
[MyClass {title:食物,值:true}]
输出2:所有选定项
[MyClass {title:食物,值:true},MyClass {title:材料,值:true}]
输出2:所有未选中的项目'
什么都不会打印