如何添加列表<;字符串>;要检查BoxListTile值?
在这个例子中,我试图将保存在列表中的值添加到CheckboxListTile。 但是由于某种原因,我被困在这里,我想不出如何解决这个问题 全球列表如何添加列表<;字符串>;要检查BoxListTile值?,list,flutter,widget,checkboxlist,List,Flutter,Widget,Checkboxlist,在这个例子中,我试图将保存在列表中的值添加到CheckboxListTile。 但是由于某种原因,我被困在这里,我想不出如何解决这个问题 全球列表 List<String> _lstNomeData = new List<String>(); 身体 body: Column( children: <Widget>[ Expanded( child: L
List<String> _lstNomeData = new List<String>();
身体
body: Column(
children: <Widget>[
Expanded(
child: ListView(
children: values.keys.map((String key) {
return new CheckboxListTile(
title: new Text(key),
value: values[key],
activeColor: Colors.blue,
checkColor: Colors.white,
onChanged: (bool value) {
setState(() {
values[key] = value;
});
},
);
}).toList(),
),
),
],
)
body:Column(
儿童:[
扩大(
子:ListView(
子项:values.keys.map((字符串键){
返回新的CheckboxListTile(
标题:新文本(关键),
值:值[键],
activeColor:Colors.blue,
checkColor:Colors.white,
一旦更改:(布尔值){
设置状态(){
值[键]=值;
});
},
);
}).toList(),
),
),
],
)
错误
你走在正确的轨道上。您可以在这里做两件事:
false
false
(默认)false
预先填充映射,您无法区分用户实际回答的false
与默认设置的false。如果地图上没有钥匙,您就知道用户到目前为止还没有回答问题。我将展示如何使用第二种方法:
保持您的全球列表不变:
列表lstNomeData=[];
使用空地图初始化地图(代表用户对每个问题的答案):
Map-answers={};
现在,请在您的复选框中正确引用这些答案,并使用onChanged
属性:
ListView(
子项:lstNomeData.map((键)=>
CheckboxListTile(
标题:文本(键),
//在这里,我们检查答案映射是否有此键,如果有,则使用bool值,否则将其设置为false(用户迄今尚未回答此问题)
值:回答[键]??错误,
activeColor:Colors.blue,
checkColor:Colors.white,
一旦更改:(答案)=>
设置状态(()=>答案[键]=答案)
),
).toList(),
),
var tmpArray = [];
getCheckboxItems() {
values.forEach((key, value) {
if (value == true) {
tmpArray.add(key);
}
});
print(tmpArray);
tmpArray.clear();
}
body: Column(
children: <Widget>[
Expanded(
child: ListView(
children: values.keys.map((String key) {
return new CheckboxListTile(
title: new Text(key),
value: values[key],
activeColor: Colors.blue,
checkColor: Colors.white,
onChanged: (bool value) {
setState(() {
values[key] = value;
});
},
);
}).toList(),
),
),
],
)