I am trying to make a grade point average application. In my controller page I have this code below. What I am trying to do is just display this data in the Dropdown controller.I have been working on for hours but I couldn't make it run as expected What is wrong here? Could you please help? Thanks in advance
This is the Controller page
class Controller extends GetxController {
var liste = ["AA", "BA", "BB", "CB", "CC", "DC", "DD", "FD", "FF"];
convertToDropdownMenuItem() {
return liste
.map((e) => DropdownMenuItem(
value: convertLettersToGrade(e),
child: Text(e),
))
.toList();
}
convertLettersToGrade(String e) {
switch (e) {
case "AA":
return 4;
case "BA":
return 3.5;
case "BB":
return 3;
case "CB":
return 2.5;
case "CC":
return 2;
case "DC":
return 1.5;
case "DD":
return 1;
case "FD":
return 0.5;
case "FF":
return;
}
}
And this my home screen
Container(
color:Colors.grey,
child: DropdownButton<double>(
value: val,
items: controller.convertToDropdownMenuItem(),
onChanged: (newVal) {
setState(() {
val = newVal!;
print(controller.convertToDropdownMenuItem());//Data comes poperly here
});
},
I just added this at the end of switch statemement
default:
return 0;
and change this
convertLettersToGrade(String e)
to
double convertLettersToGrade(String e)
and it worked like a charm