ребята, я новичок во флаттере, я создал форму и добавил туда выпадающее меню. Я хочу напечатать данные выбранного элемента. И приложение работает, но печатается Экземпляр "Степень" .
На самом деле я хочу отправить эти данные в базу данных через API.
Это мой код.
class Degree {
const Degree(this.name);
final String name;
}
class _RegisterStudentsState extends State<RegisterStudents> {
Degree selectedDegree;
List<String> selectedValues;
List<Degree> degrees = <Degree>[
const Degree('BSc in Software Engineering (PLY)'),
const Degree('BSc in Computer Security (PLY)'),
const Degree('BSc in Computer Networks (PLY)')
];
@override
Widget build(BuildContext context) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(statusBarColor: Colors.transparent));
return Scaffold(
resizeToAvoidBottomPadding: false,
body: Stack(
children: <Widget>[
Image.asset(
'assets/background2.jpg',
fit: BoxFit.fill,
height: double.infinity,
width: double.infinity,
),
Container(
height: double.infinity,
width: double.infinity,
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.bottomCenter,
end: Alignment.topCenter,
colors: [
Colors.black.withOpacity(.9),
Colors.black.withOpacity(.1),
])),
),
Padding(
padding: EdgeInsets.only(bottom: 60),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10)),
padding:
EdgeInsets.only(left: 30, top: 2, bottom: 2, right: 30),
child: DropdownButton<Degree>(
hint: new Text(
"Select a degree",
style: TextStyle(color: Colors.black),
),
value: selectedDegree,
onChanged: (Degree newValue) {
setState(() {
selectedDegree = newValue;
print(newValue);
});
},
items: degrees.map((Degree degree) {
return new DropdownMenuItem<Degree>(
value: degree,
child: new Text(
degree.name,
style: new TextStyle(color: Colors.black),
),
);
}).toList(),
),
),
],
),
)
],
),
);
}
Как напечатать название степени вместо печати Экземпляр 'Степень'?