dart - DropdownMenuItem 如何获取 Text 小部件的字符串数据
问题描述
List<DropdownMenuItem<String>> department = [];
@override
void initState() {
super.initState();
department.add(DropdownMenuItem(
value: 'DEP0000001',
child: Text('IT - SAP'),
));
department.add(DropdownMenuItem(
value: 'DEP0000002',
child: Text('HR - Admin'),
));
department.add(DropdownMenuItem(
value: 'DEP0000003',
child: Text('Engineering'),
));
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView(
children: <Widget>[
DropdownButton(
items: department,
onChanged: (value) {
setState(() {
_deptCode = value;
});
},
hint: Text('Select Department'),
value: _deptCode,
),
],
),
);
}
在这里我可以得到部门代码的值。但是,我也想获得部门名称。我试图获取字符串数据文本小部件,但我认为这是不可能的。有什么办法吗?
解决方案
您可以维护一个Map并稍后使用它来获取数据。例如:
var data = {
'DEP0000001':'IT - SAP',
'DEP0000002' : 'HR - Admin',
'DEP0000003' : 'Engineering'
};
...
void initState() {
super.initState();
department.add(DropdownMenuItem(
value: 'DEP0000001',
child: Text(data['DEP0000001']),
));
department.add(DropdownMenuItem(
value: 'DEP0000002',
child: Text(data['DEP0000002]),
));
department.add(DropdownMenuItem(
value: 'DEP0000003',
child: Text(data['DEP0000003']),
));
}
稍后您可以使用此获取数据
print("The department ${data[_deptCode]} has code of $_deptCode");
希望它有所帮助:)
推荐阅读
- php - 如何在 HTML 选择列表中检索选项项的属性?
- reactjs - 无法在 makeStyle 中使用“this”
- android - 如何在颤动中读取 JSON 数组/映射中的单个值?
- reactjs - 使用 React Hooks 时如何避免两次获取数据
- angular - 如何使用formControlName angular将base64值发送到rest api?
- javascript - 如何修复无法读取属性属性“大小”未定义
- mysql - 使用 SQL 对两个表中的两列求和
- mongodb - 如何从 mongoDB 的部分索引中查找所有文档?
- android - 找不到符号的列表视图实例错误
- std - Clion 无法加载外部库