Search code examples
flutterflutter-getx

Flutter dropdown button not showing value


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
        });
      },
 

Solution

  • 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